Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 360.29 KB | None | 0 0
  1.  
  2. ulonglong UndefinedFunction_004022c0(longlong param_1,uint param_2,int param_3)
  3.  
  4. {
  5.   longlong *plVar1;
  6.   longlong lVar2;
  7.   ushort *puVar3;
  8.   byte bVar4;
  9.   undefined2 uVar5;
  10.   longlong *plVar6;
  11.   bool bVar7;
  12.   int iVar8;
  13.   ulonglong uVar9;
  14.   ulonglong uVar10;
  15.   ulonglong uVar11;
  16.   short sVar12;
  17.   uint uVar13;
  18.   longlong lVar14;
  19.   undefined4 *puVar15;
  20.   undefined4 *puVar16;
  21.   short sVar17;
  22.   int iVar18;
  23.   int iVar19;
  24.   longlong lVar20;
  25.   longlong lVar21;
  26.   uint *puVar22;
  27.   longlong lVar23;
  28.   uint uVar24;
  29.   ulonglong uVar25;
  30.   short *psVar26;
  31.   int *piVar27;
  32.   char *pcVar28;
  33.   undefined2 *puVar29;
  34.   undefined2 *puVar30;
  35.   undefined2 *puVar31;
  36.   short *psVar32;
  37.   char *pcVar33;
  38.   short *psVar34;
  39.   undefined *puVar35;
  40.   byte *pbVar36;
  41.   char cVar37;
  42.   int iVar38;
  43.   byte *pbVar39;
  44.   ushort uVar40;
  45.   uint uVar41;
  46.   char cVar42;
  47.   uint uVar43;
  48.   char *pcVar44;
  49.   undefined4 uVar45;
  50.   undefined *puVar46;
  51.   uint uVar47;
  52.   byte *pbVar48;
  53.   byte bVar49;
  54.   uint uVar50;
  55.   uint uVar51;
  56.   undefined4 uVar52;
  57.   short sVar59;
  58.   short sVar60;
  59.   short sVar61;
  60.   short sVar62;
  61.   short sVar63;
  62.   undefined auVar53 [16];
  63.   short sVar57;
  64.   short sVar64;
  65.   undefined auVar54 [16];
  66.   undefined auVar58 [14];
  67.   undefined auVar55 [16];
  68.   undefined auVar56 [16];
  69.   undefined auVar65 [16];
  70.   undefined auVar66 [16];
  71.   undefined auVar67 [16];
  72.   undefined auVar68 [16];
  73.   undefined auVar69 [16];
  74.   undefined auVar70 [14];
  75.   undefined auVar71 [16];
  76.   undefined auVar72 [16];
  77.   undefined auVar73 [16];
  78.   uint uStack256;
  79.   uint uStack248;
  80.  
  81.   if (param_3 < 1) {
  82.     uStack256 = 0;
  83.   }
  84.   else {
  85.     uVar11 = (ulonglong)*(uint *)(param_1 + 0xa8);
  86.     plVar1 = (longlong *)(param_1 + 8);
  87.     iVar8 = 0;
  88.     auVar68 = (undefined  [16])0x1000100010001;
  89.     lVar2 = param_1 + 0x9560;
  90.     auVar72 = (undefined  [16])0x1000100010001;
  91.     auVar71 = (undefined  [16])0x1000100010001;
  92.     auVar73 = (undefined  [16])0x1000100010001;
  93.     uStack256 = param_2;
  94.     do {
  95.       iVar19 = uStack256 - 1;
  96.       pbVar48 = (byte *)(lVar2 + (ulonglong)
  97.                                  *(byte *)(*(longlong *)(param_1 + 0x58) +
  98.                                           (ulonglong)(uint)(iVar19 - *(int *)(param_1 + 0x74))) *4)
  99.       ;
  100.       uVar25 = (ulonglong)*pbVar48;
  101.       pbVar39 = (byte *)(lVar2 + ((ulonglong)(uStack256 & 3) + 0x100 + uVar11 * 4) * 4);
  102.       uVar13 = *(uint *)(param_1 + 0x40);
  103.       puVar3 = (ushort *)
  104.                (lVar2 + ((ulonglong)(byte)(&DAT_00432160)[*pbVar39] + 0x270 +
  105.                         (ulonglong)(byte)(&DAT_00432160)[uVar25] * 8) * 2);
  106.       uVar43 = *(uint *)(param_1 + 0x3c);
  107.       *(uint *)(param_1 + 0x3c) = uVar13;
  108.       *(uint *)(param_1 + 0x40) = uVar43;
  109.       if (uVar13 < 0x10000) {
  110.         FUN_00417f00(plVar1);
  111.         uVar13 = *(uint *)(param_1 + 0x3c);
  112.         uVar43 = *(uint *)(param_1 + 0x40);
  113.         uVar25 = (ulonglong)*pbVar48;
  114.       }
  115.       uVar40 = *puVar3;
  116.       uVar41 = (int)(uint)uVar40 >> 4;
  117.       if ((uVar13 & 0xfff) < uVar41) {
  118.         iVar8 = (uVar13 >> 0xc) * uVar41 + (uVar13 & 0xfff);
  119.         *(int *)(param_1 + 0x3c) = iVar8;
  120.         *puVar3 = uVar40 + (-uVar40 >> 7);
  121.         *pbVar48 = (&DAT_00431f61)[uVar25 * 2];
  122.         *pbVar39 = (&DAT_00431f61)[(ulonglong)*pbVar39 * 2];
  123.         bVar49 = (&DAT_0042b160)
  124.                  [*(byte *)(*(longlong *)(param_1 + 0x58) +
  125.                            (ulonglong)(uint)(iVar19 - *(int *)(param_1 + 0x74)))];
  126.         lVar14 = (ulonglong)bVar49 * 0x51;
  127.         if ((&DAT_0042b140)[*(uint *)(param_1 + 0xa8)] == 0) {
  128.           *(uint *)(param_1 + 0x3c) = uVar43;
  129.           *(int *)(param_1 + 0x40) = iVar8;
  130.           if (uVar43 < 0x10000) {
  131.             FUN_00417f00(plVar1);
  132.           }
  133.           uVar13 = *(uint *)(param_1 + 0x3c);
  134.           puVar15 = (undefined4 *)(param_1 + 0x11c0 + (ulonglong)bVar49 * 0xa20);
  135.                     /* WARNING: Load size is inaccurate */
  136.           auVar53 = *(undefined *)puVar15;
  137.                     /* WARNING: Load size is inaccurate */
  138.           auVar54 = *(undefined *)(puVar15 + 4);
  139.           iVar8 = (uVar13 & 0x3fff) + 1;
  140.           sVar12 = (short)iVar8;
  141.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  142.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  143.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  144.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  145.                                                                     sVar12,CONCAT26(SUB162(auVar53
  146.                                                   >> 0x30,0) - sVar12,
  147.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  148.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  149.                                                                     sVar12,SUB162(auVar53,0) -
  150.                                                                            sVar12))))))),
  151.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  152.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  153.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  154.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  155.                                                                     sVar12,CONCAT26(SUB162(auVar54
  156.                                                   >> 0x30,0) - sVar12,
  157.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  158.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  159.                                                                     sVar12,SUB162(auVar54,0) -
  160.                                                                            sVar12))))))));
  161.           uVar41 = pmovmskb(iVar8,auVar53);
  162.           uVar43 = 0x1f;
  163.           if (uVar41 != 0) {
  164.             while (uVar41 >> uVar43 == 0) {
  165.               uVar43 = uVar43 - 1;
  166.             }
  167.           }
  168.           uVar50 = -(uVar43 ^ 0x1f) + 0x1f;
  169.           uVar11 = (ulonglong)uVar50;
  170.           uVar41 = (uint)*(ushort *)((longlong)puVar15 + uVar11 * 2);
  171.           *(int *)(param_1 + 0x3c) =
  172.                (uVar13 >> 0xe) *
  173.                (*(ushort *)((longlong)puVar15 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf) * 2) -
  174.                 uVar41 & 0x3fff) + (uVar13 - uVar41 & 0x3fff);
  175.           FUN_00421ad0(puVar15,uVar50);
  176.           uVar13 = *(uint *)(param_1 + 0x40);
  177.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  178.           *(uint *)(param_1 + 0x3c) = uVar13;
  179.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  180.           if (uVar13 < 0x10000) {
  181.             FUN_00417f00(plVar1);
  182.             uVar13 = *(uint *)(param_1 + 0x3c);
  183.           }
  184.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  185.           lVar23 = (longlong)(int)(uint)bVar49 * 0x51;
  186.           lVar21 = lVar23 + uVar11;
  187.           lVar20 = lVar21 * 0x20;
  188.                     /* WARNING: Load size is inaccurate */
  189.           auVar53 = *(undefined *)(param_1 + 0x11f0 + lVar20);
  190.                     /* WARNING: Load size is inaccurate */
  191.           auVar54 = *(undefined *)(param_1 + (lVar21 + 0x8f) * 0x20);
  192.           auVar53 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  193.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  194.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  195.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  196.                                                                     sVar12,CONCAT26(SUB162(auVar54
  197.                                                   >> 0x30,0) - sVar12,
  198.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  199.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  200.                                                                     sVar12,SUB162(auVar54,0) -
  201.                                                                            sVar12))))))),
  202.                              CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  203.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  204.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  205.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  206.                                                                     sVar12,CONCAT26(SUB162(auVar53
  207.                                                   >> 0x30,0) - sVar12,
  208.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  209.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  210.                                                                     sVar12,SUB162(auVar53,0) -
  211.                                                                            sVar12))))))));
  212.           uVar41 = pmovmskb((int)lVar20,auVar53);
  213.           uVar43 = 0x1f;
  214.           if (uVar41 != 0) {
  215.             while (uVar41 >> uVar43 == 0) {
  216.               uVar43 = uVar43 - 1;
  217.             }
  218.           }
  219.           uVar24 = -(uVar43 ^ 0x1f) + 0x1f;
  220.           bVar49 = (char)uVar50 * '\x10' | (byte)uVar24;
  221.           lVar21 = (lVar23 + uVar11) * 0x10;
  222.           uVar41 = (uint)*(ushort *)(param_1 + ((ulonglong)uVar24 + 0x8f0 + lVar21) * 2);
  223.           *(int *)(param_1 + 0x3c) =
  224.                (uVar13 - uVar41 & 0x3fff) +
  225.                (*(ushort *)
  226.                  (param_1 + (lVar21 + 0x8f0 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  227.                 uVar41 & 0x3fff) * (uVar13 >> 0xe);
  228.           FUN_00421ad0((undefined4 *)((lVar14 + 0x8f + uVar11) * 0x20 + param_1),uVar24);
  229.         }
  230.         else {
  231.           uVar11 = (ulonglong)((uint)(byte)(&DAT_0042b140)[*(uint *)(param_1 + 0xa8)] - 1);
  232.           iVar19 = (uStack256 - *(int *)(param_1 + 0x98)) - *(int *)(param_1 + 0x74);
  233.           bVar4 = *(byte *)(*(longlong *)(param_1 + 0x58) +
  234.                            (ulonglong)(iVar19 + (iVar19 >> 0x1f & *(uint *)(param_1 + 0x68))));
  235.           *(uint *)(param_1 + 0x3c) = uVar43;
  236.           *(int *)(param_1 + 0x40) = iVar8;
  237.           uVar25 = (ulonglong)(bVar4 >> 4);
  238.           if (uVar43 < 0x10000) {
  239.             FUN_00417f00(plVar1);
  240.             uVar43 = *(uint *)(param_1 + 0x3c);
  241.           }
  242.           lVar20 = (longlong)(int)(uint)bVar49;
  243.           sVar12 = ((ushort)uVar43 & 0x3fff) + 1;
  244.           lVar21 = uVar11 * 0x10 + lVar20 * 0x51 + uVar25;
  245.           lVar23 = lVar21 * 0x20;
  246.                     /* WARNING: Load size is inaccurate */
  247.           auVar53 = *(undefined *)(param_1 + 0x13f0 + lVar23);
  248.                     /* WARNING: Load size is inaccurate */
  249.           auVar54 = *(undefined *)(param_1 + (lVar21 + 0x9f) * 0x20);
  250.           lVar21 = (lVar20 * 0x51 + uVar25 + uVar11 * 0x10) * 0x10;
  251.           auVar53 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  252.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  253.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  254.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  255.                                                                     sVar12,CONCAT26(SUB162(auVar54
  256.                                                   >> 0x30,0) - sVar12,
  257.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  258.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  259.                                                                     sVar12,SUB162(auVar54,0) -
  260.                                                                            sVar12))))))),
  261.                              CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  262.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  263.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  264.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  265.                                                                     sVar12,CONCAT26(SUB162(auVar53
  266.                                                   >> 0x30,0) - sVar12,
  267.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  268.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  269.                                                                     sVar12,SUB162(auVar53,0) -
  270.                                                                            sVar12))))))));
  271.           uVar41 = pmovmskb((int)lVar23,auVar53);
  272.           uVar13 = 0x1f;
  273.           if (uVar41 != 0) {
  274.             while (uVar41 >> uVar13 == 0) {
  275.               uVar13 = uVar13 - 1;
  276.             }
  277.           }
  278.           uVar50 = -(uVar13 ^ 0x1f) + 0x1f;
  279.           uVar41 = (uint)*(ushort *)(param_1 + ((ulonglong)uVar50 + 0x9f0 + lVar21) * 2);
  280.           *(int *)(param_1 + 0x3c) =
  281.                (*(ushort *)
  282.                  (param_1 + (lVar21 + 0x9f0 + (ulonglong)(-(uVar13 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  283.                 uVar41 & 0x3fff) * (uVar43 >> 0xe) + (uVar43 - uVar41 & 0x3fff);
  284.           FUN_00421ad0((undefined4 *)((uVar11 * 0x10 + 0x9f + lVar14 + uVar25) * 0x20 + param_1),
  285.                        uVar50);
  286.           if (((uint)bVar4 ^ uVar50 * 0x10) < 0x10) {
  287.             uVar25 = (ulonglong)(byte)((uint)bVar4 & 0xf);
  288.             uVar13 = *(uint *)(param_1 + 0x40);
  289.             *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)(param_1 + 0x3c);
  290.             *(uint *)(param_1 + 0x3c) = uVar13;
  291.             if (uVar13 < 0x10000) {
  292.               FUN_00417f00(plVar1);
  293.               uVar13 = *(uint *)(param_1 + 0x3c);
  294.             }
  295.             sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  296.             lVar21 = uVar11 * 0x10 + lVar20 * 0x51 + uVar25;
  297.             lVar23 = lVar21 * 0x20;
  298.                     /* WARNING: Load size is inaccurate */
  299.             auVar53 = *(undefined *)(param_1 + 0x17f0 + lVar23);
  300.                     /* WARNING: Load size is inaccurate */
  301.             auVar54 = *(undefined *)(param_1 + (lVar21 + 0xbf) * 0x20);
  302.             auVar53 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  303.                                          CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  304.                                                    CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  305.                                                              CONCAT28(SUB162(auVar54 >> 0x40,0) -
  306.                                                                       sVar12,CONCAT26(SUB162(auVar54
  307.                                                                                              >> 0x30
  308.                                                   ,0) - sVar12,
  309.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  310.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  311.                                                                     sVar12,SUB162(auVar54,0) -
  312.                                                                            sVar12))))))),
  313.                                CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  314.                                          CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  315.                                                    CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  316.                                                              CONCAT28(SUB162(auVar53 >> 0x40,0) -
  317.                                                                       sVar12,CONCAT26(SUB162(auVar53
  318.                                                                                              >> 0x30
  319.                                                   ,0) - sVar12,
  320.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  321.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  322.                                                                     sVar12,SUB162(auVar53,0) -
  323.                                                                            sVar12))))))));
  324.             uVar41 = pmovmskb((int)lVar23,auVar53);
  325.             uVar43 = 0x1f;
  326.             if (uVar41 != 0) {
  327.               while (uVar41 >> uVar43 == 0) {
  328.                 uVar43 = uVar43 - 1;
  329.               }
  330.             }
  331.             uVar24 = -(uVar43 ^ 0x1f) + 0x1f;
  332.             bVar49 = (byte)uVar24;
  333.             lVar21 = (lVar20 * 0x51 + uVar25 + uVar11 * 0x10) * 0x10;
  334.             uVar41 = (uint)*(ushort *)(param_1 + ((ulonglong)uVar24 + 0xbf0 + lVar21) * 2);
  335.             *(int *)(param_1 + 0x3c) =
  336.                  (uVar13 - uVar41 & 0x3fff) +
  337.                  (*(ushort *)
  338.                    (param_1 + (lVar21 + 0xbf0 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  339.                   uVar41 & 0x3fff) * (uVar13 >> 0xe);
  340.             FUN_00421ad0((undefined4 *)
  341.                          (param_1 +
  342.                          ((ulonglong)((uint)bVar4 & 0xf) + uVar11 * 0x10 + 0xbf + lVar14) * 0x20),
  343.                          uVar24);
  344.           }
  345.           else {
  346.             uVar13 = *(uint *)(param_1 + 0x40);
  347.             uVar11 = (ulonglong)(uVar50 & 0xfffffff);
  348.             uVar52 = *(undefined4 *)(param_1 + 0x3c);
  349.             *(uint *)(param_1 + 0x3c) = uVar13;
  350.             *(undefined4 *)(param_1 + 0x40) = uVar52;
  351.             if (uVar13 < 0x10000) {
  352.               FUN_00417f00(plVar1);
  353.               uVar13 = *(uint *)(param_1 + 0x3c);
  354.             }
  355.             sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  356.             lVar21 = lVar20 * 0x51 + uVar11;
  357.             lVar23 = lVar21 * 0x20;
  358.                     /* WARNING: Load size is inaccurate */
  359.             auVar53 = *(undefined *)(param_1 + 0x11f0 + lVar23);
  360.                     /* WARNING: Load size is inaccurate */
  361.             auVar54 = *(undefined *)(param_1 + (lVar21 + 0x8f) * 0x20);
  362.             auVar53 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  363.                                          CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  364.                                                    CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  365.                                                              CONCAT28(SUB162(auVar54 >> 0x40,0) -
  366.                                                                       sVar12,CONCAT26(SUB162(auVar54
  367.                                                                                              >> 0x30
  368.                                                   ,0) - sVar12,
  369.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  370.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  371.                                                                     sVar12,SUB162(auVar54,0) -
  372.                                                                            sVar12))))))),
  373.                                CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  374.                                          CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  375.                                                    CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  376.                                                              CONCAT28(SUB162(auVar53 >> 0x40,0) -
  377.                                                                       sVar12,CONCAT26(SUB162(auVar53
  378.                                                                                              >> 0x30
  379.                                                   ,0) - sVar12,
  380.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  381.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  382.                                                                     sVar12,SUB162(auVar53,0) -
  383.                                                                            sVar12))))))));
  384.             uVar41 = pmovmskb((int)lVar23,auVar53);
  385.             uVar43 = 0x1f;
  386.             if (uVar41 != 0) {
  387.               while (uVar41 >> uVar43 == 0) {
  388.                 uVar43 = uVar43 - 1;
  389.               }
  390.             }
  391.             uVar24 = -(uVar43 ^ 0x1f) + 0x1f;
  392.             bVar49 = (byte)uVar24;
  393.             lVar21 = (lVar20 * 0x51 + uVar11) * 0x10;
  394.             uVar41 = (uint)*(ushort *)(param_1 + ((ulonglong)uVar24 + 0x8f0 + lVar21) * 2);
  395.             *(int *)(param_1 + 0x3c) =
  396.                  (uVar13 - uVar41 & 0x3fff) +
  397.                  (*(ushort *)
  398.                    (param_1 + (lVar21 + 0x8f0 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  399.                   uVar41 & 0x3fff) * (uVar13 >> 0xe);
  400.             FUN_00421ad0((undefined4 *)((lVar14 + 0x8f + uVar11) * 0x20 + param_1),uVar24);
  401.           }
  402.           bVar49 = (byte)(uVar50 * 0x10) | bVar49;
  403.         }
  404.         uVar25 = 4;
  405.         *(byte *)(*(longlong *)(param_1 + 0x58) + (ulonglong)(uStack256 - *(int *)(param_1 +0x74)))
  406.              = bVar49;
  407.         iVar8 = 1;
  408.         uVar13 = uStack256 + 1;
  409.         goto LAB_00403130;
  410.       }
  411.       iVar18 = uVar13 - ((uVar13 >> 0xc) + 1) * uVar41;
  412.       *(int *)(param_1 + 0x3c) = iVar18;
  413.       *puVar3 = uVar40 - (short)((int)(uint)uVar40 >> 7);
  414.       *pbVar48 = (&DAT_00431f60)[uVar25 * 2];
  415.       *pbVar39 = (&DAT_00431f60)[(ulonglong)*pbVar39 * 2];
  416.       bVar49 = (&DAT_00432160)[pbVar39[1]];
  417.       bVar4 = (&DAT_00432160)[pbVar48[1]];
  418.       *(uint *)(param_1 + 0x3c) = uVar43;
  419.       *(int *)(param_1 + 0x40) = iVar18;
  420.       puVar3 = (ushort *)(lVar2 + ((ulonglong)bVar49 + 0x270 + (ulonglong)bVar4 * 8) * 2);
  421.       if (uVar43 < 0x10000) {
  422.         FUN_00417f00(plVar1);
  423.         uVar43 = *(uint *)(param_1 + 0x3c);
  424.       }
  425.       uVar40 = *puVar3;
  426.       uVar41 = uVar43 & 0xfff;
  427.       uVar13 = (int)(uint)uVar40 >> 4;
  428.       if (uVar13 <= uVar41) {
  429.         iVar18 = uVar43 - uVar13 * ((uVar43 >> 0xc) + 1);
  430.         lVar14 = 2;
  431.         *(int *)(param_1 + 0x3c) = iVar18;
  432.         *puVar3 = uVar40 - (short)((int)(uint)uVar40 >> 7);
  433.         uVar25 = 0;
  434.       }
  435.       else {
  436.         iVar18 = uVar13 * (uVar43 >> 0xc) + uVar41;
  437.         *(int *)(param_1 + 0x3c) = iVar18;
  438.         lVar14 = 3;
  439.         *puVar3 = uVar40 + (-uVar40 >> 7);
  440.         uVar25 = 2;
  441.       }
  442.       uVar11 = (ulonglong)(uVar13 > uVar41);
  443.       pbVar48[1] = (&DAT_00431f60)[uVar11 + (ulonglong)pbVar48[1] * 2];
  444.       pbVar48 = pbVar48 + lVar14;
  445.       pbVar39[1] = (&DAT_00431f60)[uVar11 + (ulonglong)pbVar39[1] * 2];
  446.       pbVar39 = pbVar39 + lVar14;
  447.       puVar3 = (ushort *)
  448.                (lVar2 + ((ulonglong)(byte)(&DAT_00432160)[*pbVar39] + 0x270 +
  449.                         (ulonglong)(byte)(&DAT_00432160)[*pbVar48] * 8) * 2);
  450.       uVar13 = *(uint *)(param_1 + 0x40);
  451.       *(int *)(param_1 + 0x40) = iVar18;
  452.       *(uint *)(param_1 + 0x3c) = uVar13;
  453.       if (uVar13 < 0x10000) {
  454.         FUN_00417f00(plVar1);
  455.         uVar13 = *(uint *)(param_1 + 0x3c);
  456.       }
  457.       uVar40 = *puVar3;
  458.       uVar41 = uVar13 & 0xfff;
  459.       uVar10 = (ulonglong)uVar41;
  460.       uVar43 = (int)(uint)uVar40 >> 4;
  461.       uVar11 = (ulonglong)uVar43;
  462.       if (uVar43 <= uVar41) {
  463.         iVar18 = uVar13 - ((uVar13 >> 0xc) + 1) * uVar43;
  464.         *(int *)(param_1 + 0x3c) = iVar18;
  465.         *puVar3 = uVar40 - (short)((int)(uint)uVar40 >> 7);
  466.       }
  467.       else {
  468.         uVar25 = (ulonglong)((uint)uVar25 | 1);
  469.         iVar18 = (uVar13 >> 0xc) * uVar43 + uVar41;
  470.         *(int *)(param_1 + 0x3c) = iVar18;
  471.         *puVar3 = uVar40 + (-uVar40 >> 7);
  472.       }
  473.       uVar9 = (ulonglong)(uVar43 > uVar41);
  474.       iVar38 = (int)uVar25;
  475.       *pbVar48 = (&DAT_00431f60)[uVar9 + (ulonglong)*pbVar48 * 2];
  476.       uVar13 = (uint)(&DAT_00431f60 + (ulonglong)*pbVar39 * 2);
  477.       *pbVar39 = (&DAT_00431f60 + (ulonglong)*pbVar39 * 2)[uVar9];
  478.       uVar43 = *(uint *)(param_1 + 0x40);
  479.       if (iVar38 == 2) {
  480.         bVar49 = *(byte *)(*(longlong *)(param_1 + 0x58) +
  481.                           (ulonglong)(uint)(iVar19 - *(int *)(param_1 + 0x74)));
  482.         *(uint *)(param_1 + 0x3c) = uVar43;
  483.         *(int *)(param_1 + 0x40) = iVar18;
  484.         if (uVar43 < 0x10000) {
  485.           FUN_00417f00(plVar1);
  486.         }
  487.         uVar13 = *(uint *)(param_1 + 0x3c);
  488.         lVar14 = (longlong)(int)(uint)bVar49;
  489.         lVar23 = (ulonglong)bVar49 * 0x40 + param_1;
  490.         lVar21 = lVar14 * 0x20;
  491.         lVar14 = lVar14 * 0x40 + param_1;
  492.                     /* WARNING: Load size is inaccurate */
  493.         auVar53 = *(undefined *)(lVar14 + 0xb5d0);
  494.                     /* WARNING: Load size is inaccurate */
  495.         auVar54 = *(undefined *)(lVar14 + 0xb5e0);
  496.         iVar8 = (uVar13 & 0x3fff) + 1;
  497.         sVar12 = (short)iVar8;
  498.         sVar17 = SUB162(auVar53,0);
  499.         sVar57 = SUB162(auVar53 >> 0x10,0);
  500.         sVar59 = SUB162(auVar53 >> 0x20,0);
  501.         sVar60 = SUB162(auVar53 >> 0x30,0);
  502.         sVar61 = SUB162(auVar53 >> 0x40,0);
  503.         sVar62 = SUB162(auVar53 >> 0x50,0);
  504.         sVar63 = SUB162(auVar53 >> 0x60,0);
  505.         sVar64 = SUB162(auVar53 >> 0x70,0);
  506.         auVar54 = packsswb(CONCAT214(sVar64 - sVar12,
  507.                                      CONCAT212(sVar63 - sVar12,
  508.                                                CONCAT210(sVar62 - sVar12,
  509.                                                          CONCAT28(sVar61 - sVar12,
  510.                                                                   CONCAT26(sVar60 - sVar12,
  511.                                                                            CONCAT24(sVar59 -sVar12,
  512.                                                                                     CONCAT22(sVar57
  513.                                                   - sVar12,sVar17 - sVar12))))))),
  514.                            CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  515.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  516.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  517.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  518.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  519.                                                                                   ) - sVar12,
  520.                                                                             CONCAT24(SUB162(auVar54
  521.                                                   >> 0x20,0) - sVar12,
  522.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  523.                                                            SUB162(auVar54,0) - sVar12))))))));
  524.                     /* WARNING: Load size is inaccurate */
  525.         auVar53 = *(undefined *)(lVar23 + 0xb600);
  526.         uVar41 = pmovmskb(uVar41,auVar54);
  527.                     /* WARNING: Load size is inaccurate */
  528.         auVar54 = *(undefined *)(lVar14 + 0xb5f0);
  529.         auVar53 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  530.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  531.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  532.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  533.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  534.                                                                                   ) - sVar12,
  535.                                                                             CONCAT24(SUB162(auVar54
  536.                                                   >> 0x20,0) - sVar12,
  537.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  538.                                                            SUB162(auVar54,0) - sVar12))))))),
  539.                            CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  540.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  541.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  542.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  543.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  544.                                                                                   ) - sVar12,
  545.                                                                             CONCAT24(SUB162(auVar53
  546.                                                   >> 0x20,0) - sVar12,
  547.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  548.                                                            SUB162(auVar53,0) - sVar12))))))));
  549.         iVar8 = pmovmskb(iVar8,auVar53);
  550.         uVar41 = iVar8 << 0x10 | uVar41;
  551.         uVar43 = 0x1f;
  552.         if (uVar41 != 0) {
  553.           while (uVar41 >> uVar43 == 0) {
  554.             uVar43 = uVar43 - 1;
  555.           }
  556.         }
  557.         uVar11 = (ulonglong)(-(uVar43 ^ 0x1f) + 0x1f);
  558.         uVar41 = (uint)*(ushort *)(param_1 + (lVar21 + 0x5ae8 + uVar11) * 2);
  559.         puVar35 = (undefined *)(uVar11 * 0x40 + DAT_00434778);
  560.         iVar8 = (*(ushort *)(param_1 + (lVar21 + 0x5ae8 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) *2)
  561.                 - uVar41) * (uVar13 >> 0xe) + (uVar13 - uVar41 & 0x3fff);
  562.         *(int *)(param_1 + 0x3c) = iVar8;
  563.                     /* WARNING: Load size is inaccurate */
  564.         auVar53 = *(undefined *)puVar35;
  565.         auVar53 = psraw(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar64,
  566.                                   CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar63,
  567.                                             CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar62,
  568.                                                       CONCAT28(SUB162(auVar53 >> 0x40,0) - sVar61,
  569.                                                                CONCAT26(SUB162(auVar53 >> 0x30,0) -
  570.                                                                         sVar60,CONCAT24(SUB162(
  571.                                                   auVar53 >> 0x20,0) - sVar59,
  572.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar57,
  573.                                                            SUB162(auVar53,0) - sVar17))))))),7);
  574.         uVar52 = CONCAT22(SUB162(auVar53 >> 0x10,0) + sVar57,SUB162(auVar53,0) + sVar17);
  575.         _uVar52 = CONCAT26(SUB162(auVar53 >> 0x30,0) + sVar60,
  576.                            CONCAT24(SUB162(auVar53 >> 0x20,0) + sVar59,uVar52));
  577.         _uVar52 = CONCAT210(SUB162(auVar53 >> 0x50,0) + sVar62,
  578.                             CONCAT28(SUB162(auVar53 >> 0x40,0) + sVar61,_uVar52));
  579.         *(undefined4 *)(lVar14 + 0xb5d0) = uVar52;
  580.         *(undefined4 *)(lVar14 + 0xb5d4) = (int)((ulonglong)_uVar52 >> 0x20);
  581.         *(undefined4 *)(lVar14 + 0xb5d8) = SUB124(_uVar52 >> 0x40,0);
  582.         *(undefined4 *)(lVar14 + 0xb5dc) =
  583.              SUB164(CONCAT214(SUB162(auVar53 >> 0x70,0) + sVar64,
  584.                               CONCAT212(SUB162(auVar53 >> 0x60,0) + sVar63,_uVar52)) >> 0x60,0);
  585.                     /* WARNING: Load size is inaccurate */
  586.         auVar53 = *(undefined *)(puVar35 + 0x10);
  587.                     /* WARNING: Load size is inaccurate */
  588.         auVar54 = *(undefined *)(lVar14 + 0xb5e0);
  589.         sVar12 = SUB162(auVar54 >> 0x10,0);
  590.         sVar17 = SUB162(auVar54 >> 0x20,0);
  591.         sVar57 = SUB162(auVar54 >> 0x30,0);
  592.         sVar59 = SUB162(auVar54 >> 0x40,0);
  593.         sVar60 = SUB162(auVar54 >> 0x50,0);
  594.         sVar61 = SUB162(auVar54 >> 0x60,0);
  595.         sVar62 = SUB162(auVar54 >> 0x70,0);
  596.         auVar53 = psraw(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar62,
  597.                                   CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar61,
  598.                                             CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar60,
  599.                                                       CONCAT28(SUB162(auVar53 >> 0x40,0) - sVar59,
  600.                                                                CONCAT26(SUB162(auVar53 >> 0x30,0) -
  601.                                                                         sVar57,CONCAT24(SUB162(
  602.                                                   auVar53 >> 0x20,0) - sVar17,
  603.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  604.                                                            SUB162(auVar53,0) -SUB162(auVar54,0)))))
  605.                                                   ))),7);
  606.         uVar52 = CONCAT22(sVar12 + SUB162(auVar53 >> 0x10,0),SUB162(auVar54,0) +SUB162(auVar53,0));
  607.         _uVar52 = CONCAT26(sVar57 + SUB162(auVar53 >> 0x30,0),
  608.                            CONCAT24(sVar17 + SUB162(auVar53 >> 0x20,0),uVar52));
  609.         _uVar52 = CONCAT210(sVar60 + SUB162(auVar53 >> 0x50,0),
  610.                             CONCAT28(sVar59 + SUB162(auVar53 >> 0x40,0),_uVar52));
  611.         *(undefined4 *)(lVar14 + 0xb5e0) = uVar52;
  612.         *(undefined4 *)(lVar14 + 0xb5e4) = (int)((ulonglong)_uVar52 >> 0x20);
  613.         *(undefined4 *)(lVar14 + 0xb5e8) = SUB124(_uVar52 >> 0x40,0);
  614.         *(undefined4 *)(lVar14 + 0xb5ec) =
  615.              SUB164(CONCAT214(sVar62 + SUB162(auVar53 >> 0x70,0),
  616.                               CONCAT212(sVar61 + SUB162(auVar53 >> 0x60,0),_uVar52)) >> 0x60,0);
  617.                     /* WARNING: Load size is inaccurate */
  618.         auVar53 = *(undefined *)(puVar35 + 0x20);
  619.                     /* WARNING: Load size is inaccurate */
  620.         auVar54 = *(undefined *)(lVar14 + 0xb5f0);
  621.         sVar12 = SUB162(auVar54 >> 0x10,0);
  622.         sVar17 = SUB162(auVar54 >> 0x20,0);
  623.         sVar57 = SUB162(auVar54 >> 0x30,0);
  624.         sVar59 = SUB162(auVar54 >> 0x40,0);
  625.         sVar60 = SUB162(auVar54 >> 0x50,0);
  626.         sVar61 = SUB162(auVar54 >> 0x60,0);
  627.         sVar62 = SUB162(auVar54 >> 0x70,0);
  628.         auVar53 = psraw(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar62,
  629.                                   CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar61,
  630.                                             CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar60,
  631.                                                       CONCAT28(SUB162(auVar53 >> 0x40,0) - sVar59,
  632.                                                                CONCAT26(SUB162(auVar53 >> 0x30,0) -
  633.                                                                         sVar57,CONCAT24(SUB162(
  634.                                                   auVar53 >> 0x20,0) - sVar17,
  635.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  636.                                                            SUB162(auVar53,0) -SUB162(auVar54,0)))))
  637.                                                   ))),7);
  638.         uVar52 = CONCAT22(sVar12 + SUB162(auVar53 >> 0x10,0),SUB162(auVar54,0) +SUB162(auVar53,0));
  639.         _uVar52 = CONCAT26(sVar57 + SUB162(auVar53 >> 0x30,0),
  640.                            CONCAT24(sVar17 + SUB162(auVar53 >> 0x20,0),uVar52));
  641.         _uVar52 = CONCAT210(sVar60 + SUB162(auVar53 >> 0x50,0),
  642.                             CONCAT28(sVar59 + SUB162(auVar53 >> 0x40,0),_uVar52));
  643.         *(undefined4 *)(lVar14 + 0xb5f0) = uVar52;
  644.         *(undefined4 *)(lVar14 + 0xb5f4) = (int)((ulonglong)_uVar52 >> 0x20);
  645.         *(undefined4 *)(lVar14 + 0xb5f8) = SUB124(_uVar52 >> 0x40,0);
  646.         *(undefined4 *)(lVar14 + 0xb5fc) =
  647.              SUB164(CONCAT214(sVar62 + SUB162(auVar53 >> 0x70,0),
  648.                               CONCAT212(sVar61 + SUB162(auVar53 >> 0x60,0),_uVar52)) >> 0x60,0);
  649.         lVar14 = DAT_00431880;
  650.                     /* WARNING: Load size is inaccurate */
  651.         auVar53 = *(undefined *)(lVar23 + 0xb600);
  652.                     /* WARNING: Load size is inaccurate */
  653.         auVar54 = *(undefined *)(puVar35 + 0x30);
  654.         sVar12 = SUB162(auVar53 >> 0x10,0);
  655.         sVar17 = SUB162(auVar53 >> 0x20,0);
  656.         sVar57 = SUB162(auVar53 >> 0x30,0);
  657.         sVar59 = SUB162(auVar53 >> 0x40,0);
  658.         sVar60 = SUB162(auVar53 >> 0x50,0);
  659.         sVar61 = SUB162(auVar53 >> 0x60,0);
  660.         sVar62 = SUB162(auVar53 >> 0x70,0);
  661.         auVar54 = psraw(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar62,
  662.                                   CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar61,
  663.                                             CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar60,
  664.                                                       CONCAT28(SUB162(auVar54 >> 0x40,0) - sVar59,
  665.                                                                CONCAT26(SUB162(auVar54 >> 0x30,0) -
  666.                                                                         sVar57,CONCAT24(SUB162(
  667.                                                   auVar54 >> 0x20,0) - sVar17,
  668.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  669.                                                            SUB162(auVar54,0) -SUB162(auVar53,0)))))
  670.                                                   ))),7);
  671.         uVar52 = CONCAT22(sVar12 + SUB162(auVar54 >> 0x10,0),SUB162(auVar53,0) +SUB162(auVar54,0));
  672.         _uVar52 = CONCAT26(sVar57 + SUB162(auVar54 >> 0x30,0),
  673.                            CONCAT24(sVar17 + SUB162(auVar54 >> 0x20,0),uVar52));
  674.         _uVar52 = CONCAT210(sVar60 + SUB162(auVar54 >> 0x50,0),
  675.                             CONCAT28(sVar59 + SUB162(auVar54 >> 0x40,0),_uVar52));
  676.         *(undefined4 *)(lVar23 + 0xb600) = uVar52;
  677.         *(undefined4 *)(lVar23 + 0xb604) = (int)((ulonglong)_uVar52 >> 0x20);
  678.         *(undefined4 *)(lVar23 + 0xb608) = SUB124(_uVar52 >> 0x40,0);
  679.         *(undefined4 *)(lVar23 + 0xb60c) =
  680.              SUB164(CONCAT214(sVar62 + SUB162(auVar54 >> 0x70,0),
  681.                               CONCAT212(sVar61 + SUB162(auVar54 >> 0x60,0),_uVar52)) >> 0x60,0);
  682.         iVar18 = 0;
  683.         if (*(byte *)(lVar14 + uVar11) != 0) {
  684.           uVar10 = FUN_00417f40(plVar1,(uint)*(byte *)(lVar14 + uVar11));
  685.           iVar18 = (int)uVar10;
  686.           iVar8 = *(int *)(param_1 + 0x3c);
  687.         }
  688.         iVar18 = (iVar18 + (&DAT_004318b8)[uVar11]) - DAT_004319c0;
  689.         uVar11 = (ulonglong)
  690.                  *(byte *)(*(longlong *)(param_1 + 0x58) +
  691.                           (ulonglong)(uint)(iVar19 - *(int *)(param_1 + 0x74)));
  692.         lVar14 = param_1 + uVar11 * 4;
  693.         uVar13 = (*(uint *)(lVar14 + 200) - 1) - iVar18;
  694.         uVar43 = *(uint *)(lVar14 + 200) ^ uVar13;
  695.         if (uVar43 < 0x200) {
  696.           uVar43 = *(uint *)(lVar14 + 0x4c8);
  697.         }
  698.         else {
  699.           if (uVar43 < 0x40000) {
  700.             uVar43 = *(uint *)(lVar14 + 0x8c8);
  701.           }
  702.           else {
  703.             uVar43 = *(uint *)(uVar11 * 0x800 + *(longlong *)(param_1 + 0xc0) +
  704.                               (ulonglong)(uVar13 >> 0x12 & 0x1ff) * 4);
  705.           }
  706.           uVar43 = *(uint *)(*(longlong *)(param_1 + 0xb8) + (ulonglong)uVar43 * 0x800 +
  707.                             (ulonglong)(uVar13 >> 9 & 0x1ff) * 4);
  708.         }
  709.         piVar27 = (int *)((ulonglong)uVar43 * 0xc00 + (ulonglong)(uVar13 & 0x1ff) * 6 +
  710.                          *(longlong *)(param_1 + 0xb0));
  711.         iVar38 = *piVar27;
  712.         *(undefined4 *)(param_1 + 0xa4) = *(undefined4 *)(param_1 + 0xa0);
  713.         *(undefined4 *)(param_1 + 0xa0) = *(undefined4 *)(param_1 + 0x9c);
  714.         *(undefined4 *)(param_1 + 0x9c) = *(undefined4 *)(param_1 + 0x98);
  715.         *(int *)(param_1 + 0x98) = uStack256 - iVar38;
  716.         bVar49 = *(byte *)((longlong)piVar27 + 5);
  717.         bVar4 = *(byte *)(piVar27 + 1);
  718.         if (bVar49 == 0) {
  719.           uVar43 = iVar18 + 1;
  720.           uVar13 = 0x1f;
  721.           if (bVar4 != 0) {
  722.             while (bVar4 >> uVar13 == 0) {
  723.               uVar13 = uVar13 - 1;
  724.             }
  725.           }
  726.           uVar41 = 0x1f;
  727.           if (uVar43 != 0) {
  728.             while (uVar43 >> uVar41 == 0) {
  729.               uVar41 = uVar41 - 1;
  730.             }
  731.           }
  732.           uVar13 = 0x1f - (uVar41 ^ 0x1f) & 0xfffffff8 | 0x1f - (uVar13 ^ 0x1f);
  733.           uVar43 = (uint)bVar4;
  734.         }
  735.         else {
  736.           if (bVar49 < bVar4) {
  737.             uVar13 = 0x1f;
  738.             if ((uint)bVar4 - (uint)bVar49 != 0) {
  739.               while ((uint)bVar4 - (uint)bVar49 >> uVar13 == 0) {
  740.                 uVar13 = uVar13 - 1;
  741.               }
  742.             }
  743.             uVar13 = 0x1f - (uVar13 ^ 0x1f) | 0x20;
  744.             uVar43 = (uint)bVar4;
  745.           }
  746.           else {
  747.             uVar43 = (uint)bVar49;
  748.             uVar41 = (uVar43 - (uint)bVar4) + 1;
  749.             uVar13 = 0x1f;
  750.             if (uVar41 != 0) {
  751.               while (uVar41 >> uVar13 == 0) {
  752.                 uVar13 = uVar13 - 1;
  753.               }
  754.             }
  755.             uVar13 = 0x1f - (uVar13 ^ 0x1f) | 0x28;
  756.           }
  757.         }
  758.         lVar14 = (longlong)(int)uVar13;
  759.         uVar13 = *(uint *)(param_1 + 0x40);
  760.         *(int *)(param_1 + 0x40) = iVar8;
  761.         *(uint *)(param_1 + 0x3c) = uVar13;
  762.         if (uVar13 < 0x10000) {
  763.           FUN_00417f00(plVar1);
  764.           uVar13 = *(uint *)(param_1 + 0x3c);
  765.         }
  766.         iVar8 = (uVar13 & 0x3fff) + 1;
  767.         lVar21 = lVar14 * 0x30 + param_1;
  768.                     /* WARNING: Load size is inaccurate */
  769.         auVar53 = *(undefined *)(lVar21 + 0xacd0);
  770.         sVar12 = (short)iVar8;
  771.                     /* WARNING: Load size is inaccurate */
  772.         auVar54 = *(undefined *)(lVar21 + 0xace0);
  773.         auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  774.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  775.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  776.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  777.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  778.                                                                                   ) - sVar12,
  779.                                                                             CONCAT24(SUB162(auVar53
  780.                                                   >> 0x20,0) - sVar12,
  781.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  782.                                                            SUB162(auVar53,0) - sVar12))))))),
  783.                            CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  784.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  785.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  786.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  787.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  788.                                                                                   ) - sVar12,
  789.                                                                             CONCAT24(SUB162(auVar54
  790.                                                   >> 0x20,0) - sVar12,
  791.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  792.                                                            SUB162(auVar54,0) - sVar12))))))));
  793.         uVar50 = pmovmskb(iVar8,auVar53);
  794.                     /* WARNING: Load size is inaccurate */
  795.         auVar53 = *(undefined *)(lVar21 + 0xacf0);
  796.         auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  797.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  798.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  799.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  800.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  801.                                                                                   ) - sVar12,
  802.                                                                             CONCAT24(SUB162(auVar53
  803.                                                   >> 0x20,0) - sVar12,
  804.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  805.                                                            SUB162(auVar53,0) - sVar12))))))),
  806.                            (undefined  [16])0x0);
  807.         iVar8 = pmovmskb((int)lVar21,auVar53);
  808.         uVar50 = iVar8 << 0x10 | uVar50;
  809.         uVar41 = 0x1f;
  810.         if (uVar50 != 0) {
  811.           while (uVar50 >> uVar41 == 0) {
  812.             uVar41 = uVar41 - 1;
  813.           }
  814.         }
  815.         uVar50 = -(uVar41 ^ 0x1f) + 0x1f;
  816.         uVar11 = (ulonglong)uVar50;
  817.         uVar24 = (uint)*(ushort *)(param_1 + (lVar14 * 0x18 + 0x5668 + uVar11) * 2);
  818.         *(int *)(param_1 + 0x3c) =
  819.              (*(ushort *)
  820.                (param_1 + (lVar14 * 0x18 + 0x5668 + (ulonglong)(-(uVar41 ^ 0x1f) + 0x20)) * 2) -
  821.              uVar24) * (uVar13 >> 0xe) + (uVar13 - uVar24 & 0x3fff);
  822.         FUN_0041ec10((undefined4 *)(param_1 + 0xacd0 + lVar14 * 0x30),uVar50);
  823.         iVar8 = 0;
  824.         if (*(byte *)(DAT_00431b40 + uVar11) != 0) {
  825.           uVar10 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_00431b40 + uVar11));
  826.           iVar8 = (int)uVar10;
  827.         }
  828.         iVar8 = (uVar43 - DAT_00431c80) + *(int *)(&DAT_00431b78 + uVar11 * 4) + iVar8;
  829.         *(char *)((longlong)piVar27 + 5) = (char)iVar8 + '\x01';
  830.         iVar18 = *(int *)(param_1 + 0x74);
  831.         lVar14 = *(longlong *)(param_1 + 0x58);
  832.         iVar38 = iVar38 - iVar18;
  833.         uVar13 = iVar38 + (iVar38 >> 0x1f & *(uint *)(param_1 + 0x68));
  834.         lVar23 = (ulonglong)uVar13 + lVar14;
  835.         lVar21 = (ulonglong)(uStack256 - iVar18) + lVar14;
  836.         if ((uStack256 - iVar18) - uVar13 < 8) {
  837.           lVar14 = 0;
  838.           do {
  839.             *(undefined *)(lVar21 + lVar14) = *(undefined *)(lVar23 + lVar14);
  840.             lVar14 = lVar14 + 1;
  841.           } while ((ulonglong)(iVar8 - 1) + 1 != lVar14);
  842.           lVar14 = *(longlong *)(param_1 + 0x58);
  843.           iVar18 = *(int *)(param_1 + 0x74);
  844.         }
  845.         else {
  846.           lVar20 = 0;
  847.           do {
  848.             *(undefined8 *)(lVar21 + lVar20) = *(undefined8 *)(lVar23 + lVar20);
  849.             lVar20 = lVar20 + 8;
  850.           } while (0 < iVar8 - (int)lVar20);
  851.         }
  852.         bVar49 = *(byte *)(lVar14 + (ulonglong)(uint)(iVar19 - iVar18));
  853.         lVar14 = param_1 + (ulonglong)bVar49 * 4;
  854.         uVar43 = *(uint *)(lVar14 + 200) + 1;
  855.         puVar22 = (uint *)((ulonglong)*(uint *)(lVar14 + 0x4c8) * 0xc00 +
  856.                            (ulonglong)(*(uint *)(lVar14 + 200) & 0x1ff) * 6 +
  857.                           *(longlong *)(param_1 + 0xb0));
  858.         *puVar22 = uStack256;
  859.         *(char *)(puVar22 + 1) = (char)iVar8;
  860.         *(undefined *)((longlong)puVar22 + 5) = 0;
  861.         *(uint *)(lVar14 + 200) = uVar43;
  862.         uVar13 = uStack256 + iVar8;
  863.         if ((uVar43 & 0x1ff) == 0) {
  864.           FUN_00415090(param_1 + 0xb0,(uint)bVar49,(ulonglong)uVar43);
  865.         }
  866.         goto LAB_00403130;
  867.       }
  868.       uVar41 = (uint)plVar1;
  869.       if (iVar38 == 3) {
  870.         *(uint *)(param_1 + 0x3c) = uVar43;
  871.         *(int *)(param_1 + 0x40) = iVar18;
  872.         if (uVar43 < 0x10000) {
  873.           uVar13 = uVar41;
  874.           FUN_00417f00(plVar1);
  875.           uVar43 = *(uint *)(param_1 + 0x3c);
  876.         }
  877.                     /* WARNING: Load size is inaccurate */
  878.         auVar53 = *(undefined *)(param_1 + 0x9ae0);
  879.                     /* WARNING: Load size is inaccurate */
  880.         auVar54 = *(undefined *)(param_1 + 0x9af0);
  881.         iVar8 = (uVar43 & 0x3fff) + 1;
  882.         sVar12 = (short)iVar8;
  883.         auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  884.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  885.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  886.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  887.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  888.                                                                                   ) - sVar12,
  889.                                                                             CONCAT24(SUB162(auVar53
  890.                                                   >> 0x20,0) - sVar12,
  891.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  892.                                                            SUB162(auVar53,0) - sVar12))))))),
  893.                            CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  894.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  895.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  896.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  897.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  898.                                                                                   ) - sVar12,
  899.                                                                             CONCAT24(SUB162(auVar54
  900.                                                   >> 0x20,0) - sVar12,
  901.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  902.                                                            SUB162(auVar54,0) - sVar12))))))));
  903.         uVar50 = pmovmskb(iVar8,auVar53);
  904.                     /* WARNING: Load size is inaccurate */
  905.         auVar53 = *(undefined *)(param_1 + 0x9b00);
  906.         auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  907.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  908.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  909.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  910.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  911.                                                                                   ) - sVar12,
  912.                                                                             CONCAT24(SUB162(auVar53
  913.                                                   >> 0x20,0) - sVar12,
  914.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  915.                                                            SUB162(auVar53,0) - sVar12))))))),
  916.                            (undefined  [16])0x0);
  917.         iVar8 = pmovmskb(uVar13,auVar53);
  918.         uVar50 = iVar8 << 0x10 | uVar50;
  919.         uVar13 = 0x1f;
  920.         if (uVar50 != 0) {
  921.           while (uVar50 >> uVar13 == 0) {
  922.             uVar13 = uVar13 - 1;
  923.           }
  924.         }
  925.         uVar50 = -(uVar13 ^ 0x1f) + 0x1f;
  926.         uVar11 = (ulonglong)uVar50;
  927.         uVar24 = (uint)*(ushort *)(param_1 + 0x9ae0 + uVar11 * 2);
  928.         *(int *)(param_1 + 0x3c) =
  929.              (uVar43 - uVar24 & 0x3fff) +
  930.              (*(ushort *)(param_1 + 0x9ae0 + (ulonglong)(-(uVar13 ^ 0x1f) + 0x20) * 2) - uVar24) *
  931.              (uVar43 >> 0xe);
  932.         FUN_0041ec10((undefined4 *)(param_1 + 0x9ae0),uVar50);
  933.         iVar8 = (&DAT_00431a18)[uVar11];
  934.         uVar43 = (uint)*(byte *)(DAT_004319e0 + uVar11) - 8;
  935.         uVar13 = *(uint *)(param_1 + 0x40);
  936.         lVar14 = uVar11 * 0x20;
  937.         *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)(param_1 + 0x3c);
  938.         *(uint *)(param_1 + 0x3c) = uVar13;
  939.         if (uVar13 < 0x10000) {
  940.           FUN_00417f00(plVar1);
  941.           uVar13 = *(uint *)(param_1 + 0x3c);
  942.         }
  943.                     /* WARNING: Load size is inaccurate */
  944.         auVar53 = *(undefined *)(param_1 + lVar14 + 0x9de0);
  945.         sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  946.                     /* WARNING: Load size is inaccurate */
  947.         auVar54 = *(undefined *)(param_1 + 0x9dd0 + uVar11 * 0x20);
  948.         auVar53 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  949.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  950.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  951.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  952.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  953.                                                                                   ) - sVar12,
  954.                                                                             CONCAT24(SUB162(auVar54
  955.                                                   >> 0x20,0) - sVar12,
  956.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  957.                                                            SUB162(auVar54,0) - sVar12))))))),
  958.                            CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  959.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  960.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  961.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  962.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  963.                                                                                   ) - sVar12,
  964.                                                                             CONCAT24(SUB162(auVar53
  965.                                                   >> 0x20,0) - sVar12,
  966.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  967.                                                            SUB162(auVar53,0) - sVar12))))))));
  968.         uVar24 = pmovmskb((int)(uVar11 * 0x20),auVar53);
  969.         uVar50 = 0x1f;
  970.         if (uVar24 != 0) {
  971.           while (uVar24 >> uVar50 == 0) {
  972.             uVar50 = uVar50 - 1;
  973.           }
  974.         }
  975.         uVar47 = -(uVar50 ^ 0x1f) + 0x1f;
  976.         uVar24 = (uint)*(ushort *)
  977.                         (param_1 + 0x9ae0 + ((ulonglong)uVar47 + 0x178 + uVar11 * 0x10) * 2);
  978.         *(int *)(param_1 + 0x3c) =
  979.              (*(ushort *)
  980.                (param_1 + 0x9ae0 +
  981.                (uVar11 * 0x10 + 0x178 + (ulonglong)(-(uVar50 ^ 0x1f) + 0x20 & 0xf)) * 2) - uVar24&
  982.              0x3fff) * (uVar13 >> 0xe) + (uVar13 - uVar24 & 0x3fff);
  983.         FUN_00421ad0((undefined4 *)(param_1 + 0x9dd0 + lVar14),uVar47);
  984.         uVar13 = *(uint *)(param_1 + 0x40);
  985.         uVar52 = *(undefined4 *)(param_1 + 0x3c);
  986.         *(uint *)(param_1 + 0x3c) = uVar13;
  987.         *(undefined4 *)(param_1 + 0x40) = uVar52;
  988.         if (uVar13 < 0x10000) {
  989.           FUN_00417f00(plVar1);
  990.           uVar13 = *(uint *)(param_1 + 0x3c);
  991.         }
  992.                     /* WARNING: Load size is inaccurate */
  993.         auVar53 = *(undefined *)(param_1 + lVar14 + 0x9b20);
  994.         sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  995.                     /* WARNING: Load size is inaccurate */
  996.         auVar54 = *(undefined *)(param_1 + 0x9b10 + uVar11 * 0x20);
  997.         auVar53 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  998.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  999.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1000.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  1001.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  1002.                                                                                   ) - sVar12,
  1003.                                                                             CONCAT24(SUB162(auVar54
  1004.                                                   >> 0x20,0) - sVar12,
  1005.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  1006.                                                            SUB162(auVar54,0) - sVar12))))))),
  1007.                            CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1008.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1009.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1010.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  1011.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  1012.                                                                                   ) - sVar12,
  1013.                                                                             CONCAT24(SUB162(auVar53
  1014.                                                   >> 0x20,0) - sVar12,
  1015.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  1016.                                                            SUB162(auVar53,0) - sVar12))))))));
  1017.         uVar24 = pmovmskb((int)(uVar11 * 0x20),auVar53);
  1018.         uVar50 = 0x1f;
  1019.         if (uVar24 != 0) {
  1020.           while (uVar24 >> uVar50 == 0) {
  1021.             uVar50 = uVar50 - 1;
  1022.           }
  1023.         }
  1024.         uVar51 = -(uVar50 ^ 0x1f) + 0x1f;
  1025.         uVar24 = (uint)*(ushort *)
  1026.                         (param_1 + 0x9ae0 + ((ulonglong)uVar51 + 0x18 + uVar11 * 0x10) * 2);
  1027.         *(int *)(param_1 + 0x3c) =
  1028.              (uVar13 - uVar24 & 0x3fff) +
  1029.              (*(ushort *)
  1030.                (param_1 + 0x9ae0 +
  1031.                (uVar11 * 0x10 + 0x18 + (ulonglong)(-(uVar50 ^ 0x1f) + 0x20 & 0xf)) * 2) - uVar24 &
  1032.              0x3fff) * (uVar13 >> 0xe);
  1033.         FUN_00421ad0((undefined4 *)(param_1 + 0x9b10 + lVar14),uVar51);
  1034.         uVar51 = uVar51 << ((byte)uVar43 & 0x1f);
  1035.         if (uVar43 != 0) {
  1036.           uVar13 = uVar41;
  1037.           uVar11 = FUN_00417f40(plVar1,uVar43);
  1038.           uVar43 = uVar13;
  1039.           uVar51 = uVar51 | (uint)uVar11;
  1040.         }
  1041.         uVar50 = *(uint *)(param_1 + 0xa8);
  1042.         uVar13 = iVar8 + 1 + (uVar47 | uVar51 << 4);
  1043.         *(undefined4 *)(param_1 + 0xa4) = *(undefined4 *)(param_1 + 0xa0);
  1044.         *(undefined4 *)(param_1 + 0xa0) = *(undefined4 *)(param_1 + 0x9c);
  1045.         uVar52 = *(undefined4 *)(param_1 + 0x98);
  1046.         *(uint *)(param_1 + 0x98) = uVar13;
  1047.         *(undefined4 *)(param_1 + 0x9c) = uVar52;
  1048.         uVar24 = 0x1f;
  1049.         if (uVar13 != 0) {
  1050.           while (uVar13 >> uVar24 == 0) {
  1051.             uVar24 = uVar24 - 1;
  1052.           }
  1053.         }
  1054.         lVar14 = (longlong)((int)(0x1f - (uVar24 ^ 0x1f)) >> 3);
  1055.         uVar24 = *(uint *)(param_1 + 0x40);
  1056.         *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)(param_1 + 0x3c);
  1057.         *(uint *)(param_1 + 0x3c) = uVar24;
  1058.         if (uVar24 < 0x10000) {
  1059.           uVar43 = uVar41;
  1060.           FUN_00417f00(plVar1);
  1061.           uVar24 = *(uint *)(param_1 + 0x3c);
  1062.         }
  1063.         lVar21 = lVar14 + (ulonglong)uVar50 * 4;
  1064.         sVar12 = ((ushort)uVar24 & 0x3fff) + 1;
  1065.                     /* WARNING: Load size is inaccurate */
  1066.         auVar53 = *(undefined *)(param_1 + 0xa090 + lVar21 * 0x20);
  1067.                     /* WARNING: Load size is inaccurate */
  1068.         auVar54 = *(undefined *)(param_1 + (lVar21 + 0x505) * 0x20);
  1069.         auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1070.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1071.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1072.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  1073.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  1074.                                                                                   ) - sVar12,
  1075.                                                                             CONCAT24(SUB162(auVar53
  1076.                                                   >> 0x20,0) - sVar12,
  1077.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  1078.                                                            SUB162(auVar53,0) - sVar12))))))),
  1079.                            CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1080.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1081.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1082.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  1083.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  1084.                                                                                   ) - sVar12,
  1085.                                                                             CONCAT24(SUB162(auVar54
  1086.                                                   >> 0x20,0) - sVar12,
  1087.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  1088.                                                            SUB162(auVar54,0) - sVar12))))))));
  1089.         uVar41 = pmovmskb(uVar43,auVar53);
  1090.         uVar43 = 0x1f;
  1091.         if (uVar41 != 0) {
  1092.           while (uVar41 >> uVar43 == 0) {
  1093.             uVar43 = uVar43 - 1;
  1094.           }
  1095.         }
  1096.         uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  1097.         uVar11 = (ulonglong)uVar41;
  1098.         uVar47 = (uint)*(ushort *)(param_1 + (lVar21 * 0x10 + 0x5048 + uVar11) * 2);
  1099.         *(int *)(param_1 + 0x3c) =
  1100.              (uVar24 - uVar47 & 0x3fff) +
  1101.              (*(ushort *)
  1102.                (param_1 + (lVar21 * 0x10 + 0x5048 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf)) *2)
  1103.               - uVar47 & 0x3fff) * (uVar24 >> 0xe);
  1104.         FUN_00421ad0((undefined4 *)(param_1 + 0xa090 + (lVar14 + (ulonglong)uVar50 * 4) * 0x20),
  1105.                      uVar41);
  1106.         iVar8 = 0;
  1107.         if (*(byte *)(DAT_00431ca0 + uVar11) != 0) {
  1108.           uVar10 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_00431ca0 + uVar11));
  1109.           iVar8 = (int)uVar10;
  1110.         }
  1111.         iVar8 = (2 - DAT_00431de0) + (&DAT_00431cd8)[uVar11] + iVar8;
  1112.         uVar43 = uStack256 - *(int *)(param_1 + 0x74);
  1113.         iVar18 = (uStack256 - uVar13) - *(int *)(param_1 + 0x74);
  1114.         uVar13 = iVar18 + (iVar18 >> 0x1f & *(uint *)(param_1 + 0x68));
  1115.         lVar14 = (ulonglong)uVar13 + *(longlong *)(param_1 + 0x58);
  1116.         lVar21 = *(longlong *)(param_1 + 0x58) + (ulonglong)uVar43;
  1117.         if (uVar43 - uVar13 < 8) {
  1118.           lVar23 = 0;
  1119.           do {
  1120.             *(undefined *)(lVar21 + lVar23) = *(undefined *)(lVar14 + lVar23);
  1121.             lVar23 = lVar23 + 1;
  1122.           } while ((ulonglong)(iVar8 - 1) + 1 != lVar23);
  1123.         }
  1124.         else {
  1125.           lVar23 = 0;
  1126.           do {
  1127.             *(undefined8 *)(lVar21 + lVar23) = *(undefined8 *)(lVar14 + lVar23);
  1128.             lVar23 = lVar23 + 8;
  1129.           } while (0 < iVar8 - (int)lVar23);
  1130.         }
  1131.         uVar13 = iVar8 + uStack256;
  1132.         if (*(char *)(param_1 + 0x11b0) != '\0') {
  1133.           iVar18 = *(int *)(param_1 + 0x74);
  1134.           lVar21 = *(longlong *)(param_1 + 0x58);
  1135.           lVar23 = *(longlong *)(param_1 + 0xb0);
  1136.           bVar49 = *(byte *)(lVar21 + (ulonglong)(uint)(iVar19 - iVar18));
  1137.           lVar14 = param_1 + (ulonglong)bVar49 * 4;
  1138.           uVar43 = *(uint *)(lVar14 + 200) + 1;
  1139.           puVar22 = (uint *)((ulonglong)*(uint *)(lVar14 + 0x4c8) * 0xc00 +
  1140.                              (ulonglong)(*(uint *)(lVar14 + 200) & 0x1ff) * 6 + lVar23);
  1141.           *puVar22 = uStack256;
  1142.           *(char *)(puVar22 + 1) = (char)iVar8;
  1143.           *(undefined *)((longlong)puVar22 + 5) = 0;
  1144.           *(uint *)(lVar14 + 200) = uVar43;
  1145.           if ((uVar43 & 0x1ff) == 0) {
  1146.             FUN_00415090(param_1 + 0xb0,(uint)bVar49,(ulonglong)uVar43);
  1147.             lVar23 = *(longlong *)(param_1 + 0xb0);
  1148.             lVar21 = *(longlong *)(param_1 + 0x58);
  1149.             iVar18 = *(int *)(param_1 + 0x74);
  1150.           }
  1151.           bVar49 = *(byte *)(lVar21 + (ulonglong)(uStack256 - iVar18));
  1152.           lVar14 = param_1 + (ulonglong)bVar49 * 4;
  1153.           uVar43 = *(uint *)(lVar14 + 200) + 1;
  1154.           piVar27 = (int *)(lVar23 + (ulonglong)*(uint *)(lVar14 + 0x4c8) * 0xc00 +
  1155.                                      (ulonglong)(*(uint *)(lVar14 + 200) & 0x1ff) * 6);
  1156.           *piVar27 = uStack256 + 1;
  1157.           *(char *)(piVar27 + 1) = (char)iVar8 + -1;
  1158.           *(undefined *)((longlong)piVar27 + 5) = 0;
  1159.           *(uint *)(lVar14 + 200) = uVar43;
  1160.           if ((uVar43 & 0x1ff) == 0) {
  1161.             FUN_00415090(param_1 + 0xb0,(uint)bVar49,(ulonglong)uVar43);
  1162.           }
  1163.         }
  1164.         goto LAB_00403130;
  1165.       }
  1166.       if (iVar38 == 1) {
  1167.         uVar11 = (ulonglong)*(uint *)(param_1 + 0xa8);
  1168.         *(uint *)(param_1 + 0x3c) = uVar43;
  1169.         *(int *)(param_1 + 0x40) = iVar18;
  1170.         if (uVar43 < 0x10000) {
  1171.           FUN_00417f00(plVar1);
  1172.         }
  1173.         uVar13 = *(uint *)(param_1 + 0x3c);
  1174.         sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  1175.                     /* WARNING: Load size is inaccurate */
  1176.         auVar53 = *(undefined *)(param_1 + 0xa790 + uVar11 * 0x20);
  1177.         lVar14 = (uVar11 + 0x53d) * 0x20;
  1178.                     /* WARNING: Load size is inaccurate */
  1179.         auVar54 = *(undefined *)(param_1 + lVar14);
  1180.         auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1181.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1182.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1183.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  1184.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  1185.                                                                                   ) - sVar12,
  1186.                                                                             CONCAT24(SUB162(auVar53
  1187.                                                   >> 0x20,0) - sVar12,
  1188.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  1189.                                                            SUB162(auVar53,0) - sVar12))))))),
  1190.                            CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1191.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1192.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1193.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  1194.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  1195.                                                                                   ) - sVar12,
  1196.                                                                             CONCAT24(SUB162(auVar54
  1197.                                                   >> 0x20,0) - sVar12,
  1198.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  1199.                                                            SUB162(auVar54,0) - sVar12))))))));
  1200.         uVar50 = pmovmskb((int)lVar14,auVar53);
  1201.         uVar43 = 0x1f;
  1202.         if (uVar50 != 0) {
  1203.           while (uVar50 >> uVar43 == 0) {
  1204.             uVar43 = uVar43 - 1;
  1205.           }
  1206.         }
  1207.         uVar50 = -(uVar43 ^ 0x1f) + 0x1f;
  1208.         uVar10 = (ulonglong)uVar50;
  1209.         uVar24 = (uint)*(ushort *)(param_1 + (uVar10 + 0x53c8 + uVar11 * 0x10) * 2);
  1210.         *(int *)(param_1 + 0x3c) =
  1211.              (uVar13 >> 0xe) *
  1212.              (*(ushort *)
  1213.                (param_1 + (uVar11 * 0x10 + 0x53c8 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf)) *2)
  1214.               - uVar24 & 0x3fff) + (uVar13 - uVar24 & 0x3fff);
  1215.         FUN_00421ad0((undefined4 *)(param_1 + 0xa790 + uVar11 * 0x20),uVar50);
  1216.         sVar12 = *(short *)(&DAT_0042b100 + uVar10 * 2);
  1217.         iVar8 = *(int *)(param_1 + 0x98 + (ulonglong)(byte)(&DAT_0042b120)[uVar10] * 4);
  1218.         puVar15 = (undefined4 *)(param_1 + 0x98 + (ulonglong)((&DAT_0042b130)[uVar10] ^ 1) * 4);
  1219.         uVar13 = (uint)puVar15;
  1220.         uVar52 = *puVar15;
  1221.         if (1 < ((&DAT_0042b130)[uVar10] ^ 1)) {
  1222.           *(undefined4 *)(param_1 + 0xa4) = uVar52;
  1223.           *(undefined4 *)(param_1 + 0xa0) = *(undefined4 *)(param_1 + 0x9c);
  1224.           uVar52 = *(undefined4 *)(param_1 + 0x98);
  1225.         }
  1226.         uVar43 = *(uint *)(param_1 + 0xa8);
  1227.         *(undefined4 *)(param_1 + 0x9c) = uVar52;
  1228.         *(int *)(param_1 + 0x98) = sVar12 + iVar8;
  1229.         uVar24 = *(uint *)(param_1 + 0x40);
  1230.         *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)(param_1 + 0x3c);
  1231.         *(uint *)(param_1 + 0x3c) = uVar24;
  1232.         if (uVar24 < 0x10000) {
  1233.           uVar13 = uVar41;
  1234.           FUN_00417f00(plVar1);
  1235.           uVar24 = *(uint *)(param_1 + 0x3c);
  1236.         }
  1237.         lVar14 = (ulonglong)(uVar50 != 0) + (ulonglong)uVar43 * 2;
  1238.         sVar12 = ((ushort)uVar24 & 0x3fff) + 1;
  1239.                     /* WARNING: Load size is inaccurate */
  1240.         auVar53 = *(undefined *)(param_1 + 0xa950 + lVar14 * 0x20);
  1241.                     /* WARNING: Load size is inaccurate */
  1242.         auVar54 = *(undefined *)(param_1 + (lVar14 + 0x54b) * 0x20);
  1243.         auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1244.                                      CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1245.                                                CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1246.                                                          CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar12
  1247.                                                                   ,CONCAT26(SUB162(auVar53 >>0x30,0
  1248.                                                                                   ) - sVar12,
  1249.                                                                             CONCAT24(SUB162(auVar53
  1250.                                                   >> 0x20,0) - sVar12,
  1251.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  1252.                                                            SUB162(auVar53,0) - sVar12))))))),
  1253.                            CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1254.                                      CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1255.                                                CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1256.                                                          CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar12
  1257.                                                                   ,CONCAT26(SUB162(auVar54 >>0x30,0
  1258.                                                                                   ) - sVar12,
  1259.                                                                             CONCAT24(SUB162(auVar54
  1260.                                                   >> 0x20,0) - sVar12,
  1261.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  1262.                                                            SUB162(auVar54,0) - sVar12))))))));
  1263.         uVar41 = pmovmskb(uVar13,auVar53);
  1264.         uVar13 = 0x1f;
  1265.         if (uVar41 != 0) {
  1266.           while (uVar41 >> uVar13 == 0) {
  1267.             uVar13 = uVar13 - 1;
  1268.           }
  1269.         }
  1270.         uVar41 = -(uVar13 ^ 0x1f) + 0x1f;
  1271.         uVar11 = (ulonglong)uVar41;
  1272.         uVar47 = (uint)*(ushort *)(param_1 + (lVar14 * 0x10 + 0x54a8 + uVar11) * 2);
  1273.         *(int *)(param_1 + 0x3c) =
  1274.              (uVar24 - uVar47 & 0x3fff) +
  1275.              (*(ushort *)
  1276.                (param_1 + (lVar14 * 0x10 + 0x54a8 + (ulonglong)(-(uVar13 ^ 0x1f) + 0x20 & 0xf)) *2)
  1277.               - uVar47 & 0x3fff) * (uVar24 >> 0xe);
  1278.         FUN_00421ad0((undefined4 *)
  1279.                      (param_1 + 0xa950 + ((ulonglong)(uVar50 != 0) + (ulonglong)uVar43 * 2) *0x20),
  1280.                      uVar41);
  1281.         iVar8 = 0;
  1282.         if (*(byte *)(DAT_00431e00 + uVar11) != 0) {
  1283.           uVar10 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_00431e00 + uVar11));
  1284.           iVar8 = (int)uVar10;
  1285.         }
  1286.         iVar8 = (1 - DAT_00431f40) + (&DAT_00431e38)[uVar11] + iVar8;
  1287.         uVar43 = uStack256 - *(int *)(param_1 + 0x74);
  1288.         iVar19 = (uStack256 - *(int *)(param_1 + 0x98)) - *(int *)(param_1 + 0x74);
  1289.         uVar13 = (iVar19 >> 0x1f & *(uint *)(param_1 + 0x68)) + iVar19;
  1290.         lVar21 = (ulonglong)uVar13 + *(longlong *)(param_1 + 0x58);
  1291.         lVar14 = *(longlong *)(param_1 + 0x58) + (ulonglong)uVar43;
  1292.         if (uVar43 - uVar13 < 8) {
  1293.           lVar23 = 0;
  1294.           do {
  1295.             *(undefined *)(lVar14 + lVar23) = *(undefined *)(lVar21 + lVar23);
  1296.             lVar23 = lVar23 + 1;
  1297.           } while ((ulonglong)(iVar8 - 1) + 1 != lVar23);
  1298.           uVar13 = uStack256 + iVar8;
  1299.         }
  1300.         else {
  1301.           lVar23 = 0;
  1302.           do {
  1303.             *(undefined8 *)(lVar14 + lVar23) = *(undefined8 *)(lVar21 + lVar23);
  1304.             lVar23 = lVar23 + 8;
  1305.           } while (0 < iVar8 - (int)lVar23);
  1306.           uVar13 = uStack256 + iVar8;
  1307.         }
  1308.         goto LAB_00403130;
  1309.       }
  1310.       *(uint *)(param_1 + 0x3c) = uVar43;
  1311.       *(int *)(param_1 + 0x40) = iVar18;
  1312.       if (uVar43 < 0x10000) {
  1313.         FUN_00417f00(plVar1);
  1314.       }
  1315.       uVar13 = *(uint *)(param_1 + 0x3c);
  1316.                     /* WARNING: Load size is inaccurate */
  1317.       auVar53 = *(undefined *)(param_1 + 0x9ac0);
  1318.                     /* WARNING: Load size is inaccurate */
  1319.       auVar54 = *(undefined *)(param_1 + 0x9ad0);
  1320.       iVar19 = (uVar13 & 0x3fff) + 1;
  1321.       sVar12 = (short)iVar19;
  1322.       auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1323.                                    CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1324.                                              CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1325.                                                        CONCAT28(SUB162(auVar53 >> 0x40,0) - sVar12,
  1326.                                                                 CONCAT26(SUB162(auVar53 >> 0x30,0)-
  1327.                                                                          sVar12,CONCAT24(SUB162(
  1328.                                                   auVar53 >> 0x20,0) - sVar12,
  1329.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar12,
  1330.                                                            SUB162(auVar53,0) - sVar12))))))),
  1331.                          CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1332.                                    CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1333.                                              CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1334.                                                        CONCAT28(SUB162(auVar54 >> 0x40,0) - sVar12,
  1335.                                                                 CONCAT26(SUB162(auVar54 >> 0x30,0)-
  1336.                                                                          sVar12,CONCAT24(SUB162(
  1337.                                                   auVar54 >> 0x20,0) - sVar12,
  1338.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  1339.                                                            SUB162(auVar54,0) - sVar12))))))));
  1340.       uVar41 = pmovmskb(iVar19,auVar53);
  1341.       uVar43 = 0x1f;
  1342.       if (uVar41 != 0) {
  1343.         while (uVar41 >> uVar43 == 0) {
  1344.           uVar43 = uVar43 - 1;
  1345.         }
  1346.       }
  1347.       iVar19 = -(uVar43 ^ 0x1f);
  1348.       uVar43 = iVar19 + 0x1f;
  1349.       uVar40 = *(ushort *)(param_1 + 0x9ac0 + (ulonglong)uVar43 * 2);
  1350.       puVar15 = (undefined4 *)(ulonglong)uVar40;
  1351.       *(int *)(param_1 + 0x3c) =
  1352.            (uVar13 >> 0xe) *
  1353.            ((uint)*(ushort *)(param_1 + 0x9ac0 + (ulonglong)(iVar19 + 0x20U & 0xf) * 2) -
  1354.             (uint)uVar40 & 0x3fff) + (uVar13 - (uint)uVar40 & 0x3fff);
  1355.       FUN_00421ad0((undefined4 *)(param_1 + 0x9ac0),uVar43);
  1356.       lVar14 = DAT_00434720;
  1357.       if (0xf < uVar43) {
  1358.         uVar25 = 0;
  1359.         uVar13 = uStack256 + iVar8;
  1360.         goto LAB_00403130;
  1361.       }
  1362.       puVar22 = &switchdataD_0042b000;
  1363.       switch(iVar19) {
  1364.       case -0x1f:
  1365.         pbVar48 = (byte *)(param_1 + 62999);
  1366.         puVar35 = (undefined *)
  1367.                   ((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) + *(longlong *)(param_1 +0x58)
  1368.                   );
  1369.         uVar11 = (ulonglong)(byte)puVar35[-1];
  1370.         bVar49 = puVar35[-2];
  1371.         do {
  1372.           bVar4 = *pbVar48;
  1373.           uVar13 = *(uint *)(param_1 + 0x40);
  1374.           uVar43 = (int)((int)uVar11 - (uint)bVar49 & 0xff) >> 7;
  1375.           plVar6 = *(longlong **)(param_1 + 63000);
  1376.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  1377.           *(uint *)(param_1 + 0x3c) = uVar13;
  1378.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  1379.           if (uVar13 < 0x10000) {
  1380.             FUN_00417f00(plVar1);
  1381.             uVar13 = *(uint *)(param_1 + 0x3c);
  1382.           }
  1383.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  1384.           lVar14 = (ulonglong)uVar43 + (longlong)(int)(uint)bVar4 * 2;
  1385.           lVar21 = lVar14 * 0x10;
  1386.           lVar14 = lVar14 * 0x20 + param_1;
  1387.                     /* WARNING: Load size is inaccurate */
  1388.           auVar53 = *(undefined *)(lVar14 + 0xf5d0);
  1389.                     /* WARNING: Load size is inaccurate */
  1390.           auVar54 = *(undefined *)(lVar14 + 0xf5e0);
  1391.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1392.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1393.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1394.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1395.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1396.                                                   >> 0x30,0) - sVar12,
  1397.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1398.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1399.                                                                     sVar12,SUB162(auVar53,0) -
  1400.                                                                            sVar12))))))),
  1401.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1402.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1403.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1404.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1405.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1406.                                                   >> 0x30,0) - sVar12,
  1407.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1408.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1409.                                                                     sVar12,SUB162(auVar54,0) -
  1410.                                                                            sVar12))))))));
  1411.           uVar50 = pmovmskb((int)lVar14,auVar53);
  1412.           uVar41 = 0x1f;
  1413.           if (uVar50 != 0) {
  1414.             while (uVar50 >> uVar41 == 0) {
  1415.               uVar41 = uVar41 - 1;
  1416.             }
  1417.           }
  1418.           uVar24 = -(uVar41 ^ 0x1f) + 0x1f;
  1419.           uVar11 = (ulonglong)uVar24;
  1420.           uVar50 = (uint)*(ushort *)(param_1 + 0xf5d0 + (lVar21 + uVar11) * 2);
  1421.           *(int *)(param_1 + 0x3c) =
  1422.                (uVar13 - uVar50 & 0x3fff) +
  1423.                (*(ushort *)
  1424.                  (param_1 + 0xf5d0 + (lVar21 + (ulonglong)(-(uVar41 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  1425.                 uVar50 & 0x3fff) * (uVar13 >> 0xe);
  1426.           FUN_00421ad0((undefined4 *)
  1427.                        (((longlong)(int)uVar43 + (ulonglong)bVar4 * 2) * 0x20 + param_1 + 0xf5d0),
  1428.                        uVar24);
  1429.           iVar8 = 0;
  1430.           if (*(byte *)(*plVar6 + uVar11) != 0) {
  1431.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(*plVar6 + uVar11));
  1432.             iVar8 = (int)uVar25;
  1433.           }
  1434.           bVar49 = puVar35[-1];
  1435.           pbVar48 = pbVar48 + -1;
  1436.           uVar13 = (uint)bVar49 +
  1437.                    ((iVar8 + *(int *)((longlong)plVar6 + uVar11 * 4 + 0x38)) -
  1438.                    *(int *)(plVar6 + 0x28));
  1439.           uVar11 = (ulonglong)uVar13;
  1440.           *puVar35 = (char)uVar13;
  1441.           puVar35 = puVar35 + 1;
  1442.         } while ((byte *)(param_1 + 0xf60f) != pbVar48);
  1443.         break;
  1444.       case -0x1e:
  1445.         pbVar48 = (byte *)(param_1 + 0xf6a7);
  1446.         pcVar33 = (char *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  1447.                           *(longlong *)(param_1 + 0x58));
  1448.         do {
  1449.           bVar49 = *pbVar48;
  1450.           uVar13 = *(uint *)(param_1 + 0x40);
  1451.           plVar6 = *(longlong **)(param_1 + 0xf6a8);
  1452.           uVar43 = (int)(uint)(byte)(pcVar33[-2] - pcVar33[-4]) >> 7;
  1453.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  1454.           *(uint *)(param_1 + 0x3c) = uVar13;
  1455.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  1456.           if (uVar13 < 0x10000) {
  1457.             FUN_00417f00(plVar1);
  1458.             uVar13 = *(uint *)(param_1 + 0x3c);
  1459.           }
  1460.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  1461.           lVar14 = (ulonglong)uVar43 + (longlong)(int)(uint)bVar49 * 2;
  1462.           lVar21 = lVar14 * 0x10;
  1463.           lVar14 = lVar14 * 0x20 + param_1;
  1464.                     /* WARNING: Load size is inaccurate */
  1465.           auVar53 = *(undefined *)(lVar14 + 0xf620);
  1466.                     /* WARNING: Load size is inaccurate */
  1467.           auVar54 = *(undefined *)(lVar14 + 0xf630);
  1468.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1469.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1470.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1471.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1472.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1473.                                                   >> 0x30,0) - sVar12,
  1474.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1475.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1476.                                                                     sVar12,SUB162(auVar53,0) -
  1477.                                                                            sVar12))))))),
  1478.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1479.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1480.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1481.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1482.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1483.                                                   >> 0x30,0) - sVar12,
  1484.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1485.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1486.                                                                     sVar12,SUB162(auVar54,0) -
  1487.                                                                            sVar12))))))));
  1488.           uVar50 = pmovmskb((int)lVar14,auVar53);
  1489.           uVar41 = 0x1f;
  1490.           if (uVar50 != 0) {
  1491.             while (uVar50 >> uVar41 == 0) {
  1492.               uVar41 = uVar41 - 1;
  1493.             }
  1494.           }
  1495.           uVar24 = -(uVar41 ^ 0x1f) + 0x1f;
  1496.           uVar11 = (ulonglong)uVar24;
  1497.           uVar50 = (uint)*(ushort *)(param_1 + 0xf620 + (lVar21 + uVar11) * 2);
  1498.           *(int *)(param_1 + 0x3c) =
  1499.                (uVar13 - uVar50 & 0x3fff) +
  1500.                (*(ushort *)
  1501.                  (param_1 + 0xf620 + (lVar21 + (ulonglong)(-(uVar41 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  1502.                 uVar50 & 0x3fff) * (uVar13 >> 0xe);
  1503.           FUN_00421ad0((undefined4 *)
  1504.                        (((longlong)(int)uVar43 + (ulonglong)bVar49 * 2) * 0x20 + param_1 +0xf620),
  1505.                        uVar24);
  1506.           cVar42 = '\0';
  1507.           if (*(byte *)(*plVar6 + uVar11) != 0) {
  1508.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(*plVar6 + uVar11));
  1509.             cVar42 = (char)uVar25;
  1510.           }
  1511.           pbVar48 = pbVar48 + -1;
  1512.           *pcVar33 = ((cVar42 + (char)*(undefined4 *)((longlong)plVar6 + uVar11 * 4 + 0x38)) -
  1513.                      (char)*(undefined4 *)(plVar6 + 0x28)) + pcVar33[-2];
  1514.           pcVar33 = pcVar33 + 1;
  1515.         } while ((byte *)(param_1 + 0xf69f) != pbVar48);
  1516.         break;
  1517.       case -0x1d:
  1518.         pbVar48 = (byte *)(param_1 + 0xf778);
  1519.         pcVar33 = (char *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  1520.                           *(longlong *)(param_1 + 0x58));
  1521.         do {
  1522.           bVar49 = *pbVar48;
  1523.           uVar13 = *(uint *)(param_1 + 0x40);
  1524.           plVar6 = *(longlong **)(param_1 + 0xf780);
  1525.           uVar43 = (int)(uint)(byte)(pcVar33[-3] - pcVar33[-6]) >> 7;
  1526.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  1527.           *(uint *)(param_1 + 0x3c) = uVar13;
  1528.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  1529.           if (uVar13 < 0x10000) {
  1530.             FUN_00417f00(plVar1);
  1531.             uVar13 = *(uint *)(param_1 + 0x3c);
  1532.           }
  1533.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  1534.           lVar14 = (ulonglong)uVar43 + (longlong)(int)(uint)bVar49 * 2;
  1535.           lVar21 = lVar14 * 0x10;
  1536.           lVar14 = lVar14 * 0x20 + param_1;
  1537.                     /* WARNING: Load size is inaccurate */
  1538.           auVar53 = *(undefined *)(lVar14 + 0xf6b0);
  1539.                     /* WARNING: Load size is inaccurate */
  1540.           auVar54 = *(undefined *)(lVar14 + 0xf6c0);
  1541.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1542.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1543.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1544.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1545.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1546.                                                   >> 0x30,0) - sVar12,
  1547.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1548.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1549.                                                                     sVar12,SUB162(auVar53,0) -
  1550.                                                                            sVar12))))))),
  1551.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1552.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1553.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1554.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1555.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1556.                                                   >> 0x30,0) - sVar12,
  1557.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1558.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1559.                                                                     sVar12,SUB162(auVar54,0) -
  1560.                                                                            sVar12))))))));
  1561.           uVar50 = pmovmskb((int)lVar14,auVar53);
  1562.           uVar41 = 0x1f;
  1563.           if (uVar50 != 0) {
  1564.             while (uVar50 >> uVar41 == 0) {
  1565.               uVar41 = uVar41 - 1;
  1566.             }
  1567.           }
  1568.           uVar24 = -(uVar41 ^ 0x1f) + 0x1f;
  1569.           uVar11 = (ulonglong)uVar24;
  1570.           uVar50 = (uint)*(ushort *)(param_1 + 0xf6b0 + (lVar21 + uVar11) * 2);
  1571.           *(int *)(param_1 + 0x3c) =
  1572.                (uVar13 - uVar50 & 0x3fff) +
  1573.                (*(ushort *)
  1574.                  (param_1 + 0xf6b0 + (lVar21 + (ulonglong)(-(uVar41 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  1575.                 uVar50 & 0x3fff) * (uVar13 >> 0xe);
  1576.           FUN_00421ad0((undefined4 *)
  1577.                        (((longlong)(int)uVar43 + (ulonglong)bVar49 * 2) * 0x20 + param_1 +0xf6b0),
  1578.                        uVar24);
  1579.           cVar42 = '\0';
  1580.           if (*(byte *)(*plVar6 + uVar11) != 0) {
  1581.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(*plVar6 + uVar11));
  1582.             cVar42 = (char)uVar25;
  1583.           }
  1584.           pbVar48 = pbVar48 + -1;
  1585.           *pcVar33 = ((cVar42 + (char)*(undefined4 *)((longlong)plVar6 + uVar11 * 4 + 0x38)) -
  1586.                      (char)*(undefined4 *)(plVar6 + 0x28)) + pcVar33[-3];
  1587.           pcVar33 = pcVar33 + 1;
  1588.         } while ((byte *)(param_1 + 0xf76f) != pbVar48);
  1589.         goto LAB_00404361;
  1590.       case -0x1c:
  1591.         pbVar48 = (byte *)(param_1 + 0xf897);
  1592.         pcVar33 = (char *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  1593.                           *(longlong *)(param_1 + 0x58));
  1594.         do {
  1595.           bVar49 = *pbVar48;
  1596.           uVar13 = *(uint *)(param_1 + 0x40);
  1597.           plVar6 = *(longlong **)(param_1 + 0xf898);
  1598.           uVar43 = (int)(uint)(byte)(pcVar33[-4] - pcVar33[-8]) >> 7;
  1599.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  1600.           *(uint *)(param_1 + 0x3c) = uVar13;
  1601.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  1602.           if (uVar13 < 0x10000) {
  1603.             FUN_00417f00(plVar1);
  1604.             uVar13 = *(uint *)(param_1 + 0x3c);
  1605.           }
  1606.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  1607.           lVar14 = (ulonglong)uVar43 + (longlong)(int)(uint)bVar49 * 2;
  1608.           lVar21 = lVar14 * 0x10;
  1609.           lVar14 = lVar14 * 0x20 + param_1;
  1610.                     /* WARNING: Load size is inaccurate */
  1611.           auVar53 = *(undefined *)(lVar14 + 0xf790);
  1612.                     /* WARNING: Load size is inaccurate */
  1613.           auVar54 = *(undefined *)(lVar14 + 0xf7a0);
  1614.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1615.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1616.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1617.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1618.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1619.                                                   >> 0x30,0) - sVar12,
  1620.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1621.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1622.                                                                     sVar12,SUB162(auVar53,0) -
  1623.                                                                            sVar12))))))),
  1624.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1625.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1626.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1627.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1628.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1629.                                                   >> 0x30,0) - sVar12,
  1630.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1631.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1632.                                                                     sVar12,SUB162(auVar54,0) -
  1633.                                                                            sVar12))))))));
  1634.           uVar50 = pmovmskb((int)lVar14,auVar53);
  1635.           uVar41 = 0x1f;
  1636.           if (uVar50 != 0) {
  1637.             while (uVar50 >> uVar41 == 0) {
  1638.               uVar41 = uVar41 - 1;
  1639.             }
  1640.           }
  1641.           uVar24 = -(uVar41 ^ 0x1f) + 0x1f;
  1642.           uVar11 = (ulonglong)uVar24;
  1643.           uVar50 = (uint)*(ushort *)(param_1 + 0xf790 + (lVar21 + uVar11) * 2);
  1644.           *(int *)(param_1 + 0x3c) =
  1645.                (uVar13 - uVar50 & 0x3fff) +
  1646.                (*(ushort *)
  1647.                  (param_1 + 0xf790 + (lVar21 + (ulonglong)(-(uVar41 ^ 0x1f) + 0x20 & 0xf)) * 2) -
  1648.                 uVar50 & 0x3fff) * (uVar13 >> 0xe);
  1649.           FUN_00421ad0((undefined4 *)
  1650.                        (((longlong)(int)uVar43 + (ulonglong)bVar49 * 2) * 0x20 + param_1 +0xf790),
  1651.                        uVar24);
  1652.           cVar42 = '\0';
  1653.           if (*(byte *)(*plVar6 + uVar11) != 0) {
  1654.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(*plVar6 + uVar11));
  1655.             cVar42 = (char)uVar25;
  1656.           }
  1657.           pbVar48 = pbVar48 + -1;
  1658.           *pcVar33 = ((cVar42 + (char)*(undefined4 *)((longlong)plVar6 + uVar11 * 4 + 0x38)) -
  1659.                      (char)*(undefined4 *)(plVar6 + 0x28)) + pcVar33[-4];
  1660.           pcVar33 = pcVar33 + 1;
  1661.         } while ((byte *)(param_1 + 0xf88f) != pbVar48);
  1662.         break;
  1663.       case -0x1b:
  1664.         pbVar48 = (byte *)(param_1 + 0xf923);
  1665.         puVar29 = (undefined2 *)
  1666.                   ((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) + *(longlong *)(param_1 +0x58)
  1667.                   );
  1668.         uVar11 = (ulonglong)(ushort)puVar29[-1];
  1669.         do {
  1670.           uVar52 = (undefined4)uVar10;
  1671.           bVar49 = *pbVar48;
  1672.           plVar6 = *(longlong **)(param_1 + 0xf928);
  1673.           uVar43 = (int)(uint)(ushort)((short)uVar11 - puVar29[-2]) >> 0xf;
  1674.           uVar13 = *(uint *)(param_1 + 0x40);
  1675.           *(undefined4 *)(param_1 + 0x40) = *(undefined4 *)(param_1 + 0x3c);
  1676.           *(uint *)(param_1 + 0x3c) = uVar13;
  1677.           if (uVar13 < 0x10000) {
  1678.             FUN_00417f00(plVar1);
  1679.             uVar13 = *(uint *)(param_1 + 0x3c);
  1680.           }
  1681.           lVar14 = (ulonglong)uVar43 + (longlong)(int)(uint)bVar49 * 2;
  1682.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  1683.           lVar21 = lVar14 * 0x20;
  1684.           lVar14 = lVar14 * 0x40 + param_1;
  1685.                     /* WARNING: Load size is inaccurate */
  1686.           auVar53 = *(undefined *)(lVar14 + 0xf8a0);
  1687.                     /* WARNING: Load size is inaccurate */
  1688.           auVar54 = *(undefined *)(lVar14 + 0xf8b0);
  1689.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1690.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1691.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1692.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1693.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1694.                                                   >> 0x30,0) - sVar12,
  1695.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1696.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1697.                                                                     sVar12,SUB162(auVar53,0) -
  1698.                                                                            sVar12))))))),
  1699.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1700.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1701.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1702.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1703.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1704.                                                   >> 0x30,0) - sVar12,
  1705.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1706.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1707.                                                                     sVar12,SUB162(auVar54,0) -
  1708.                                                                            sVar12))))))));
  1709.           uVar50 = pmovmskb(uVar52,auVar53);
  1710.                     /* WARNING: Load size is inaccurate */
  1711.           auVar53 = *(undefined *)(lVar14 + 0xf8c0);
  1712.                     /* WARNING: Load size is inaccurate */
  1713.           auVar54 = *(undefined *)(lVar14 + 0xf8d0);
  1714.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1715.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1716.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1717.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1718.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1719.                                                   >> 0x30,0) - sVar12,
  1720.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1721.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1722.                                                                     sVar12,SUB162(auVar53,0) -
  1723.                                                                            sVar12))))))),
  1724.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1725.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1726.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1727.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1728.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1729.                                                   >> 0x30,0) - sVar12,
  1730.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1731.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1732.                                                                     sVar12,SUB162(auVar54,0) -
  1733.                                                                            sVar12))))))));
  1734.           iVar8 = pmovmskb((uint)bVar49,auVar53);
  1735.           uVar50 = iVar8 << 0x10 | uVar50;
  1736.           uVar41 = 0x1f;
  1737.           if (uVar50 != 0) {
  1738.             while (uVar50 >> uVar41 == 0) {
  1739.               uVar41 = uVar41 - 1;
  1740.             }
  1741.           }
  1742.           uVar50 = -(uVar41 ^ 0x1f) + 0x1f;
  1743.           uVar11 = (ulonglong)uVar50;
  1744.           uVar40 = *(ushort *)(param_1 + 0xf8a0 + (lVar21 + uVar11) * 2);
  1745.           uVar10 = (ulonglong)uVar40;
  1746.           *(int *)(param_1 + 0x3c) =
  1747.                (uVar13 - (uint)uVar40 & 0x3fff) +
  1748.                ((uint)*(ushort *)
  1749.                        (param_1 + 0xf8a0 +
  1750.                        (lVar21 + (ulonglong)(-(uVar41 ^ 0x1f) + 0x20 & 0x1f)) * 2) - (uint)uVar40&
  1751.                0x3fff) * (uVar13 >> 0xe);
  1752.           FUN_0041e070((undefined4 *)
  1753.                        (((longlong)(int)uVar43 + (ulonglong)bVar49 * 2) * 0x40 + param_1 +0xf8a0),
  1754.                        uVar50);
  1755.           iVar8 = 0;
  1756.           if (*(byte *)(*plVar6 + uVar11) != 0) {
  1757.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(*plVar6 + uVar11));
  1758.             iVar8 = (int)uVar25;
  1759.           }
  1760.           pbVar48 = pbVar48 + -1;
  1761.           uVar13 = (uint)(ushort)puVar29[-1] +
  1762.                    ((iVar8 + *(int *)((longlong)plVar6 + uVar11 * 4 + 0x38)) -
  1763.                    *(int *)(plVar6 + 0x28));
  1764.           uVar11 = (ulonglong)uVar13;
  1765.           *puVar29 = (short)uVar13;
  1766.           puVar29 = puVar29 + 1;
  1767.         } while ((byte *)(param_1 + 0xf91f) != pbVar48);
  1768.         break;
  1769.       case -0x1a:
  1770.         pbVar48 = (byte *)(param_1 + 0xfa33);
  1771.         psVar26 = (short *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  1772.                            *(longlong *)(param_1 + 0x58));
  1773.         do {
  1774.           uVar45 = (undefined4)uVar10;
  1775.           bVar49 = *pbVar48;
  1776.           uVar13 = *(uint *)(param_1 + 0x40);
  1777.           plVar6 = *(longlong **)(param_1 + 0xfa38);
  1778.           uVar43 = (int)((uint)(ushort)psVar26[-2] - (uint)(ushort)(psVar26[-4] * 2 -psVar26[-6]) &
  1779.                         0xffff) >> 0xf;
  1780.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  1781.           *(uint *)(param_1 + 0x3c) = uVar13;
  1782.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  1783.           if (uVar13 < 0x10000) {
  1784.             FUN_00417f00(plVar1);
  1785.             uVar13 = *(uint *)(param_1 + 0x3c);
  1786.           }
  1787.           lVar14 = (ulonglong)uVar43 + (longlong)(int)(uint)bVar49 * 2;
  1788.           iVar8 = (uVar13 & 0x3fff) + 1;
  1789.           lVar21 = lVar14 * 0x20;
  1790.           lVar14 = lVar14 * 0x40 + param_1;
  1791.           sVar12 = (short)iVar8;
  1792.                     /* WARNING: Load size is inaccurate */
  1793.           auVar53 = *(undefined *)(lVar14 + 0xf930);
  1794.                     /* WARNING: Load size is inaccurate */
  1795.           auVar54 = *(undefined *)(lVar14 + 0xf940);
  1796.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1797.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1798.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1799.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1800.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1801.                                                   >> 0x30,0) - sVar12,
  1802.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1803.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1804.                                                                     sVar12,SUB162(auVar53,0) -
  1805.                                                                            sVar12))))))),
  1806.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1807.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1808.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1809.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1810.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1811.                                                   >> 0x30,0) - sVar12,
  1812.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1813.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1814.                                                                     sVar12,SUB162(auVar54,0) -
  1815.                                                                            sVar12))))))));
  1816.           uVar50 = pmovmskb(uVar45,auVar53);
  1817.                     /* WARNING: Load size is inaccurate */
  1818.           auVar53 = *(undefined *)(lVar14 + 0xf950);
  1819.                     /* WARNING: Load size is inaccurate */
  1820.           auVar54 = *(undefined *)(lVar14 + 0xf960);
  1821.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1822.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1823.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1824.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1825.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1826.                                                   >> 0x30,0) - sVar12,
  1827.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1828.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1829.                                                                     sVar12,SUB162(auVar53,0) -
  1830.                                                                            sVar12))))))),
  1831.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1832.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1833.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1834.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1835.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1836.                                                   >> 0x30,0) - sVar12,
  1837.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1838.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1839.                                                                     sVar12,SUB162(auVar54,0) -
  1840.                                                                            sVar12))))))));
  1841.           iVar8 = pmovmskb(iVar8,auVar53);
  1842.           uVar50 = iVar8 << 0x10 | uVar50;
  1843.           uVar41 = 0x1f;
  1844.           if (uVar50 != 0) {
  1845.             while (uVar50 >> uVar41 == 0) {
  1846.               uVar41 = uVar41 - 1;
  1847.             }
  1848.           }
  1849.           uVar50 = -(uVar41 ^ 0x1f) + 0x1f;
  1850.           uVar11 = (ulonglong)uVar50;
  1851.           uVar40 = *(ushort *)(param_1 + 0xf930 + (lVar21 + uVar11) * 2);
  1852.           uVar10 = (ulonglong)uVar40;
  1853.           *(int *)(param_1 + 0x3c) =
  1854.                (uVar13 - (uint)uVar40 & 0x3fff) +
  1855.                ((uint)*(ushort *)
  1856.                        (param_1 + 0xf930 +
  1857.                        (lVar21 + (ulonglong)(-(uVar41 ^ 0x1f) + 0x20 & 0x1f)) * 2) - (uint)uVar40&
  1858.                0x3fff) * (uVar13 >> 0xe);
  1859.           FUN_0041e070((undefined4 *)
  1860.                        (param_1 + 0xf930 + ((longlong)(int)uVar43 + (ulonglong)bVar49 * 2) *0x40),
  1861.                        uVar50);
  1862.           sVar12 = 0;
  1863.           if (*(byte *)(*plVar6 + uVar11) != 0) {
  1864.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(*plVar6 + uVar11));
  1865.             sVar12 = (short)uVar25;
  1866.           }
  1867.           pbVar48 = pbVar48 + -1;
  1868.           *psVar26 = (psVar26[-2] * 2 - psVar26[-4]) +
  1869.                      ((sVar12 + (short)*(undefined4 *)((longlong)plVar6 + uVar11 * 4 + 0x38)) -
  1870.                      (short)*(undefined4 *)(plVar6 + 0x28));
  1871.           psVar26 = psVar26 + 1;
  1872.         } while ((byte *)(param_1 + 0xfa2f) != pbVar48);
  1873.         break;
  1874.       case -0x19:
  1875.         lVar14 = 0;
  1876.         piVar27 = (int *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  1877.                          *(longlong *)(param_1 + 0x58));
  1878.         iVar8 = piVar27[-1];
  1879.         while( true ) {
  1880.           uVar45 = (undefined4)uVar11;
  1881.           iVar19 = piVar27[-2];
  1882.           uVar13 = *(uint *)(param_1 + 0x40);
  1883.           bVar49 = *(byte *)(param_1 + 0xfac1 + lVar14);
  1884.           uVar11 = (ulonglong)bVar49;
  1885.           plVar6 = *(longlong **)(param_1 + 0xfac8);
  1886.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  1887.           *(uint *)(param_1 + 0x3c) = uVar13;
  1888.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  1889.           if (uVar13 < 0x10000) {
  1890.             FUN_00417f00(plVar1);
  1891.             uVar13 = *(uint *)(param_1 + 0x3c);
  1892.             uStack248 = (uint)bVar49;
  1893.             uVar11 = SEXT48((int)uStack248);
  1894.           }
  1895.           lVar21 = (ulonglong)((uint)(iVar8 - iVar19) >> 0x1f) + uVar11 * 2;
  1896.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  1897.           lVar23 = lVar21 * 0x40 + param_1;
  1898.                     /* WARNING: Load size is inaccurate */
  1899.           auVar53 = *(undefined *)(lVar23 + 0xfa40);
  1900.                     /* WARNING: Load size is inaccurate */
  1901.           auVar54 = *(undefined *)(lVar23 + 0xfa50);
  1902.           sVar17 = SUB162(auVar53,0);
  1903.           sVar57 = SUB162(auVar53 >> 0x10,0);
  1904.           sVar59 = SUB162(auVar53 >> 0x20,0);
  1905.           sVar60 = SUB162(auVar53 >> 0x30,0);
  1906.           sVar61 = SUB162(auVar53 >> 0x40,0);
  1907.           sVar62 = SUB162(auVar53 >> 0x50,0);
  1908.           sVar63 = SUB162(auVar53 >> 0x60,0);
  1909.           sVar64 = SUB162(auVar53 >> 0x70,0);
  1910.           auVar54 = packsswb(CONCAT214(sVar64 - sVar12,
  1911.                                        CONCAT212(sVar63 - sVar12,
  1912.                                                  CONCAT210(sVar62 - sVar12,
  1913.                                                            CONCAT28(sVar61 - sVar12,
  1914.                                                                     CONCAT26(sVar60 - sVar12,
  1915.                                                                              CONCAT24(sVar59 -
  1916.                                                   sVar12,CONCAT22(sVar57 - sVar12,sVar17 -sVar12)))
  1917.                                                   )))),
  1918.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1919.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1920.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1921.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1922.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1923.                                                   >> 0x30,0) - sVar12,
  1924.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1925.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1926.                                                                     sVar12,SUB162(auVar54,0) -
  1927.                                                                            sVar12))))))));
  1928.                     /* WARNING: Load size is inaccurate */
  1929.           auVar53 = *(undefined *)(lVar23 + 0xfa60);
  1930.           uVar41 = pmovmskb(uVar45,auVar54);
  1931.                     /* WARNING: Load size is inaccurate */
  1932.           auVar54 = *(undefined *)(lVar23 + 0xfa70);
  1933.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  1934.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  1935.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  1936.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  1937.                                                                     sVar12,CONCAT26(SUB162(auVar53
  1938.                                                   >> 0x30,0) - sVar12,
  1939.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  1940.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  1941.                                                                     sVar12,SUB162(auVar53,0) -
  1942.                                                                            sVar12))))))),
  1943.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  1944.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  1945.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  1946.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  1947.                                                                     sVar12,CONCAT26(SUB162(auVar54
  1948.                                                   >> 0x30,0) - sVar12,
  1949.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  1950.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  1951.                                                                     sVar12,SUB162(auVar54,0) -
  1952.                                                                            sVar12))))))));
  1953.           iVar8 = pmovmskb((int)uVar11,auVar53);
  1954.           uVar41 = iVar8 << 0x10 | uVar41;
  1955.           uVar43 = 0x1f;
  1956.           if (uVar41 != 0) {
  1957.             while (uVar41 >> uVar43 == 0) {
  1958.               uVar43 = uVar43 - 1;
  1959.             }
  1960.           }
  1961.           uVar25 = (ulonglong)(-(uVar43 ^ 0x1f) + 0x1f);
  1962.           lVar21 = lVar21 * 0x20;
  1963.           uVar11 = (ulonglong)(uVar13 >> 0xe);
  1964.           uVar41 = (uint)*(ushort *)(param_1 + 0xfa40 + (lVar21 + uVar25) * 2);
  1965.           puVar35 = (undefined *)(uVar25 * 0x40 + DAT_00434798);
  1966.           *(int *)(param_1 + 0x3c) =
  1967.                (uVar13 - uVar41 & 0x3fff) +
  1968.                (*(ushort *)(param_1 + 0xfa40 + (lVar21 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) *2)
  1969.                - uVar41) * (uVar13 >> 0xe);
  1970.                     /* WARNING: Load size is inaccurate */
  1971.           auVar53 = *(undefined *)puVar35;
  1972.           auVar53 = psraw(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar64,
  1973.                                     CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar63,
  1974.                                               CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar62,
  1975.                                                         CONCAT28(SUB162(auVar53 >> 0x40,0) -sVar61,
  1976.                                                                  CONCAT26(SUB162(auVar53 >> 0x30,0)
  1977.                                                                           - sVar60,CONCAT24(SUB162(
  1978.                                                   auVar53 >> 0x20,0) - sVar59,
  1979.                                                   CONCAT22(SUB162(auVar53 >> 0x10,0) - sVar57,
  1980.                                                            SUB162(auVar53,0) - sVar17))))))),7);
  1981.           uVar52 = CONCAT22(SUB162(auVar53 >> 0x10,0) + sVar57,SUB162(auVar53,0) + sVar17);
  1982.           _uVar52 = CONCAT26(SUB162(auVar53 >> 0x30,0) + sVar60,
  1983.                              CONCAT24(SUB162(auVar53 >> 0x20,0) + sVar59,uVar52));
  1984.           _uVar52 = CONCAT210(SUB162(auVar53 >> 0x50,0) + sVar62,
  1985.                               CONCAT28(SUB162(auVar53 >> 0x40,0) + sVar61,_uVar52));
  1986.           *(undefined4 *)(lVar23 + 0xfa40) = uVar52;
  1987.           *(undefined4 *)(lVar23 + 0xfa44) = (int)((ulonglong)_uVar52 >> 0x20);
  1988.           *(undefined4 *)(lVar23 + 0xfa48) = SUB124(_uVar52 >> 0x40,0);
  1989.           *(undefined4 *)(lVar23 + 0xfa4c) =
  1990.                SUB164(CONCAT214(SUB162(auVar53 >> 0x70,0) + sVar64,
  1991.                                 CONCAT212(SUB162(auVar53 >> 0x60,0) + sVar63,_uVar52)) >> 0x60,0);
  1992.                     /* WARNING: Load size is inaccurate */
  1993.           auVar53 = *(undefined *)(lVar23 + 0xfa50);
  1994.                     /* WARNING: Load size is inaccurate */
  1995.           auVar54 = *(undefined *)(puVar35 + 0x10);
  1996.           sVar12 = SUB162(auVar53 >> 0x10,0);
  1997.           sVar17 = SUB162(auVar53 >> 0x20,0);
  1998.           sVar57 = SUB162(auVar53 >> 0x30,0);
  1999.           sVar59 = SUB162(auVar53 >> 0x40,0);
  2000.           sVar60 = SUB162(auVar53 >> 0x50,0);
  2001.           sVar61 = SUB162(auVar53 >> 0x60,0);
  2002.           sVar62 = SUB162(auVar53 >> 0x70,0);
  2003.           auVar54 = psraw(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar62,
  2004.                                     CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar61,
  2005.                                               CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar60,
  2006.                                                         CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar59,
  2007.                                                                  CONCAT26(SUB162(auVar54 >> 0x30,0)
  2008.                                                                           - sVar57,CONCAT24(SUB162(
  2009.                                                   auVar54 >> 0x20,0) - sVar17,
  2010.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  2011.                                                            SUB162(auVar54,0) -SUB162(auVar53,0)))))
  2012.                                                   ))),7);
  2013.           uVar52 = CONCAT22(sVar12 + SUB162(auVar54 >> 0x10,0),SUB162(auVar53,0) +SUB162(auVar54,0)
  2014.                            );
  2015.           _uVar52 = CONCAT26(sVar57 + SUB162(auVar54 >> 0x30,0),
  2016.                              CONCAT24(sVar17 + SUB162(auVar54 >> 0x20,0),uVar52));
  2017.           _uVar52 = CONCAT210(sVar60 + SUB162(auVar54 >> 0x50,0),
  2018.                               CONCAT28(sVar59 + SUB162(auVar54 >> 0x40,0),_uVar52));
  2019.           *(undefined4 *)(lVar23 + 0xfa50) = uVar52;
  2020.           *(undefined4 *)(lVar23 + 0xfa54) = (int)((ulonglong)_uVar52 >> 0x20);
  2021.           *(undefined4 *)(lVar23 + 0xfa58) = SUB124(_uVar52 >> 0x40,0);
  2022.           *(undefined4 *)(lVar23 + 0xfa5c) =
  2023.                SUB164(CONCAT214(sVar62 + SUB162(auVar54 >> 0x70,0),
  2024.                                 CONCAT212(sVar61 + SUB162(auVar54 >> 0x60,0),_uVar52)) >> 0x60,0);
  2025.                     /* WARNING: Load size is inaccurate */
  2026.           auVar53 = *(undefined *)(lVar23 + 0xfa60);
  2027.                     /* WARNING: Load size is inaccurate */
  2028.           auVar54 = *(undefined *)(puVar35 + 0x20);
  2029.           sVar12 = SUB162(auVar53 >> 0x10,0);
  2030.           sVar17 = SUB162(auVar53 >> 0x20,0);
  2031.           sVar57 = SUB162(auVar53 >> 0x30,0);
  2032.           sVar59 = SUB162(auVar53 >> 0x40,0);
  2033.           sVar60 = SUB162(auVar53 >> 0x50,0);
  2034.           sVar61 = SUB162(auVar53 >> 0x60,0);
  2035.           sVar62 = SUB162(auVar53 >> 0x70,0);
  2036.           auVar54 = psraw(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar62,
  2037.                                     CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar61,
  2038.                                               CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar60,
  2039.                                                         CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar59,
  2040.                                                                  CONCAT26(SUB162(auVar54 >> 0x30,0)
  2041.                                                                           - sVar57,CONCAT24(SUB162(
  2042.                                                   auVar54 >> 0x20,0) - sVar17,
  2043.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  2044.                                                            SUB162(auVar54,0) -SUB162(auVar53,0)))))
  2045.                                                   ))),7);
  2046.           uVar52 = CONCAT22(sVar12 + SUB162(auVar54 >> 0x10,0),SUB162(auVar53,0) +SUB162(auVar54,0)
  2047.                            );
  2048.           _uVar52 = CONCAT26(sVar57 + SUB162(auVar54 >> 0x30,0),
  2049.                              CONCAT24(sVar17 + SUB162(auVar54 >> 0x20,0),uVar52));
  2050.           _uVar52 = CONCAT210(sVar60 + SUB162(auVar54 >> 0x50,0),
  2051.                               CONCAT28(sVar59 + SUB162(auVar54 >> 0x40,0),_uVar52));
  2052.           *(undefined4 *)(lVar23 + 0xfa60) = uVar52;
  2053.           *(undefined4 *)(lVar23 + 0xfa64) = (int)((ulonglong)_uVar52 >> 0x20);
  2054.           *(undefined4 *)(lVar23 + 0xfa68) = SUB124(_uVar52 >> 0x40,0);
  2055.           *(undefined4 *)(lVar23 + 0xfa6c) =
  2056.                SUB164(CONCAT214(sVar62 + SUB162(auVar54 >> 0x70,0),
  2057.                                 CONCAT212(sVar61 + SUB162(auVar54 >> 0x60,0),_uVar52)) >> 0x60,0);
  2058.                     /* WARNING: Load size is inaccurate */
  2059.           auVar53 = *(undefined *)(lVar23 + 0xfa70);
  2060.                     /* WARNING: Load size is inaccurate */
  2061.           auVar54 = *(undefined *)(puVar35 + 0x30);
  2062.           sVar12 = SUB162(auVar53 >> 0x10,0);
  2063.           sVar17 = SUB162(auVar53 >> 0x20,0);
  2064.           sVar57 = SUB162(auVar53 >> 0x30,0);
  2065.           sVar59 = SUB162(auVar53 >> 0x40,0);
  2066.           sVar60 = SUB162(auVar53 >> 0x50,0);
  2067.           sVar61 = SUB162(auVar53 >> 0x60,0);
  2068.           sVar62 = SUB162(auVar53 >> 0x70,0);
  2069.           auVar54 = psraw(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar62,
  2070.                                     CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar61,
  2071.                                               CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar60,
  2072.                                                         CONCAT28(SUB162(auVar54 >> 0x40,0) -sVar59,
  2073.                                                                  CONCAT26(SUB162(auVar54 >> 0x30,0)
  2074.                                                                           - sVar57,CONCAT24(SUB162(
  2075.                                                   auVar54 >> 0x20,0) - sVar17,
  2076.                                                   CONCAT22(SUB162(auVar54 >> 0x10,0) - sVar12,
  2077.                                                            SUB162(auVar54,0) -SUB162(auVar53,0)))))
  2078.                                                   ))),7);
  2079.           uVar52 = CONCAT22(sVar12 + SUB162(auVar54 >> 0x10,0),SUB162(auVar53,0) +SUB162(auVar54,0)
  2080.                            );
  2081.           _uVar52 = CONCAT26(sVar57 + SUB162(auVar54 >> 0x30,0),
  2082.                              CONCAT24(sVar17 + SUB162(auVar54 >> 0x20,0),uVar52));
  2083.           _uVar52 = CONCAT210(sVar60 + SUB162(auVar54 >> 0x50,0),
  2084.                               CONCAT28(sVar59 + SUB162(auVar54 >> 0x40,0),_uVar52));
  2085.           *(undefined4 *)(lVar23 + 0xfa70) = uVar52;
  2086.           *(undefined4 *)(lVar23 + 0xfa74) = (int)((ulonglong)_uVar52 >> 0x20);
  2087.           *(undefined4 *)(lVar23 + 0xfa78) = SUB124(_uVar52 >> 0x40,0);
  2088.           *(undefined4 *)(lVar23 + 0xfa7c) =
  2089.                SUB164(CONCAT214(sVar62 + SUB162(auVar54 >> 0x70,0),
  2090.                                 CONCAT212(sVar61 + SUB162(auVar54 >> 0x60,0),_uVar52)) >> 0x60,0);
  2091.           iVar8 = 0;
  2092.           if (*(byte *)(*plVar6 + uVar25) != 0) {
  2093.             uVar10 = FUN_00417f40(plVar1,(uint)*(byte *)(*plVar6 + uVar25));
  2094.             iVar8 = (int)uVar10;
  2095.           }
  2096.           iVar8 = iVar8 + (piVar27[-1] - *(int *)(plVar6 + 0x28)) +
  2097.                           *(int *)((longlong)plVar6 + uVar25 * 4 + 0x38);
  2098.           *piVar27 = iVar8;
  2099.           if (lVar14 == -1) break;
  2100.           lVar14 = -1;
  2101.           piVar27 = piVar27 + 1;
  2102.         }
  2103.         break;
  2104.       case -0x18:
  2105.         auVar53 = (undefined  [16])0x0;
  2106.         pcVar44 = (char *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  2107.                           *(longlong *)(param_1 + 0x58));
  2108.         pcVar33 = pcVar44;
  2109.         do {
  2110.           uVar45 = SUB84(puVar22,0);
  2111.           uVar13 = *(uint *)(param_1 + 0x40);
  2112.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  2113.           *(uint *)(param_1 + 0x3c) = uVar13;
  2114.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  2115.           if (uVar13 < 0x10000) {
  2116.             FUN_00417f00(plVar1);
  2117.             uVar13 = *(uint *)(param_1 + 0x3c);
  2118.           }
  2119.                     /* WARNING: Load size is inaccurate */
  2120.           auVar54 = *(undefined *)(param_1 + 0xfae0);
  2121.                     /* WARNING: Load size is inaccurate */
  2122.           auVar55 = *(undefined *)(param_1 + 0xfaf0);
  2123.           iVar8 = (uVar13 & 0x3fff) + 1;
  2124.           sVar12 = (short)iVar8;
  2125.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2126.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2127.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2128.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2129.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2130.                                                   >> 0x30,0) - sVar12,
  2131.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2132.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2133.                                                                     sVar12,SUB162(auVar54,0) -
  2134.                                                                            sVar12))))))),
  2135.                              CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar12,
  2136.                                        CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar12,
  2137.                                                  CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar12,
  2138.                                                            CONCAT28(SUB162(auVar55 >> 0x40,0) -
  2139.                                                                     sVar12,CONCAT26(SUB162(auVar55
  2140.                                                   >> 0x30,0) - sVar12,
  2141.                                                   CONCAT24(SUB162(auVar55 >> 0x20,0) - sVar12,
  2142.                                                            CONCAT22(SUB162(auVar55 >> 0x10,0) -
  2143.                                                                     sVar12,SUB162(auVar55,0) -
  2144.                                                                            sVar12))))))));
  2145.           uVar41 = pmovmskb(uVar45,auVar54);
  2146.                     /* WARNING: Load size is inaccurate */
  2147.           auVar54 = *(undefined *)(param_1 + 0xfb00);
  2148.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2149.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2150.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2151.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2152.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2153.                                                   >> 0x30,0) - sVar12,
  2154.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2155.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2156.                                                                     sVar12,SUB162(auVar54,0) -
  2157.                                                                            sVar12))))))),auVar53);
  2158.           iVar8 = pmovmskb(iVar8,auVar54);
  2159.           uVar41 = iVar8 << 0x10 | uVar41;
  2160.           uVar43 = 0x1f;
  2161.           if (uVar41 != 0) {
  2162.             while (uVar41 >> uVar43 == 0) {
  2163.               uVar43 = uVar43 - 1;
  2164.             }
  2165.           }
  2166.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  2167.           uVar11 = (ulonglong)uVar41;
  2168.           uVar50 = (uint)*(ushort *)(param_1 + 0xfae0 + uVar11 * 2);
  2169.           *(int *)(param_1 + 0x3c) =
  2170.                (uVar13 - uVar50 & 0x3fff) +
  2171.                (uVar13 >> 0xe) *
  2172.                (*(ushort *)(param_1 + 0xfae0 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20) * 2) -uVar50);
  2173.           FUN_0041e010((undefined4 *)(param_1 + 0xfae0),uVar41);
  2174.           bVar49 = *(byte *)(DAT_004311a0 + uVar11);
  2175.           uVar13 = (uint)bVar49;
  2176.           iVar8 = 0;
  2177.           if (bVar49 != 0) {
  2178.             uVar13 = (uint)bVar49;
  2179.             uVar25 = FUN_00417f40(plVar1,(uint)bVar49);
  2180.             iVar8 = (int)uVar25;
  2181.           }
  2182.           uVar43 = *(uint *)(param_1 + 0x40);
  2183.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  2184.           iVar8 = (iVar8 + *(int *)(&DAT_004311d8 + uVar11 * 4)) - DAT_004312e0;
  2185.           *(uint *)(param_1 + 0x3c) = uVar43;
  2186.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  2187.           if (uVar43 < 0x10000) {
  2188.             FUN_00417f00(plVar1);
  2189.             uVar43 = *(uint *)(param_1 + 0x3c);
  2190.           }
  2191.                     /* WARNING: Load size is inaccurate */
  2192.           auVar54 = *(undefined *)(param_1 + 0xfb10);
  2193.                     /* WARNING: Load size is inaccurate */
  2194.           auVar55 = *(undefined *)(param_1 + 0xfb20);
  2195.           iVar19 = (uVar43 & 0x3fff) + 1;
  2196.           sVar12 = (short)iVar19;
  2197.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2198.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2199.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2200.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2201.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2202.                                                   >> 0x30,0) - sVar12,
  2203.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2204.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2205.                                                                     sVar12,SUB162(auVar54,0) -
  2206.                                                                            sVar12))))))),
  2207.                              CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar12,
  2208.                                        CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar12,
  2209.                                                  CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar12,
  2210.                                                            CONCAT28(SUB162(auVar55 >> 0x40,0) -
  2211.                                                                     sVar12,CONCAT26(SUB162(auVar55
  2212.                                                   >> 0x30,0) - sVar12,
  2213.                                                   CONCAT24(SUB162(auVar55 >> 0x20,0) - sVar12,
  2214.                                                            CONCAT22(SUB162(auVar55 >> 0x10,0) -
  2215.                                                                     sVar12,SUB162(auVar55,0) -
  2216.                                                                            sVar12))))))));
  2217.           uVar41 = pmovmskb(uVar13,auVar54);
  2218.                     /* WARNING: Load size is inaccurate */
  2219.           auVar54 = *(undefined *)(param_1 + 0xfb30);
  2220.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2221.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2222.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2223.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2224.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2225.                                                   >> 0x30,0) - sVar12,
  2226.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2227.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2228.                                                                     sVar12,SUB162(auVar54,0) -
  2229.                                                                            sVar12))))))),auVar53);
  2230.           iVar19 = pmovmskb(iVar19,auVar54);
  2231.           uVar41 = iVar19 << 0x10 | uVar41;
  2232.           uVar13 = 0x1f;
  2233.           if (uVar41 != 0) {
  2234.             while (uVar41 >> uVar13 == 0) {
  2235.               uVar13 = uVar13 - 1;
  2236.             }
  2237.           }
  2238.           uVar41 = -(uVar13 ^ 0x1f) + 0x1f;
  2239.           uVar11 = (ulonglong)uVar41;
  2240.           uVar50 = (uint)*(ushort *)(param_1 + 0xfb10 + uVar11 * 2);
  2241.           *(int *)(param_1 + 0x3c) =
  2242.                (uVar43 - uVar50 & 0x3fff) +
  2243.                (uVar43 >> 0xe) *
  2244.                (*(ushort *)(param_1 + 0xfb10 + (ulonglong)(-(uVar13 ^ 0x1f) + 0x20) * 2) -uVar50);
  2245.           FUN_0041e010((undefined4 *)(param_1 + 0xfb10),uVar41);
  2246.           bVar49 = *(byte *)(DAT_00431040 + uVar11);
  2247.           uVar13 = (uint)bVar49;
  2248.           iVar19 = 0;
  2249.           if (bVar49 != 0) {
  2250.             uVar13 = (uint)bVar49;
  2251.             uVar25 = FUN_00417f40(plVar1,(uint)bVar49);
  2252.             iVar19 = (int)uVar25;
  2253.           }
  2254.           uVar43 = *(uint *)(param_1 + 0x40);
  2255.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  2256.           iVar19 = (iVar19 + *(int *)(&DAT_00431078 + uVar11 * 4)) - DAT_00431180;
  2257.           *(uint *)(param_1 + 0x3c) = uVar43;
  2258.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  2259.           if (uVar43 < 0x10000) {
  2260.             FUN_00417f00(plVar1);
  2261.             uVar43 = *(uint *)(param_1 + 0x3c);
  2262.           }
  2263.                     /* WARNING: Load size is inaccurate */
  2264.           auVar54 = *(undefined *)(param_1 + 0xfb40);
  2265.                     /* WARNING: Load size is inaccurate */
  2266.           auVar55 = *(undefined *)(param_1 + 0xfb50);
  2267.           iVar18 = (uVar43 & 0x3fff) + 1;
  2268.           sVar12 = (short)iVar18;
  2269.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2270.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2271.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2272.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2273.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2274.                                                   >> 0x30,0) - sVar12,
  2275.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2276.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2277.                                                                     sVar12,SUB162(auVar54,0) -
  2278.                                                                            sVar12))))))),
  2279.                              CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar12,
  2280.                                        CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar12,
  2281.                                                  CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar12,
  2282.                                                            CONCAT28(SUB162(auVar55 >> 0x40,0) -
  2283.                                                                     sVar12,CONCAT26(SUB162(auVar55
  2284.                                                   >> 0x30,0) - sVar12,
  2285.                                                   CONCAT24(SUB162(auVar55 >> 0x20,0) - sVar12,
  2286.                                                            CONCAT22(SUB162(auVar55 >> 0x10,0) -
  2287.                                                                     sVar12,SUB162(auVar55,0) -
  2288.                                                                            sVar12))))))));
  2289.           uVar41 = pmovmskb(uVar13,auVar54);
  2290.                     /* WARNING: Load size is inaccurate */
  2291.           auVar54 = *(undefined *)(param_1 + 0xfb60);
  2292.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2293.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2294.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2295.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2296.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2297.                                                   >> 0x30,0) - sVar12,
  2298.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2299.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2300.                                                                     sVar12,SUB162(auVar54,0) -
  2301.                                                                            sVar12))))))),auVar53);
  2302.           iVar18 = pmovmskb(iVar18,auVar54);
  2303.           uVar41 = iVar18 << 0x10 | uVar41;
  2304.           uVar13 = 0x1f;
  2305.           if (uVar41 != 0) {
  2306.             while (uVar41 >> uVar13 == 0) {
  2307.               uVar13 = uVar13 - 1;
  2308.             }
  2309.           }
  2310.           uVar41 = -(uVar13 ^ 0x1f) + 0x1f;
  2311.           uVar11 = (ulonglong)uVar41;
  2312.           uVar50 = (uint)*(ushort *)(param_1 + 0xfb40 + uVar11 * 2);
  2313.           *(int *)(param_1 + 0x3c) =
  2314.                (uVar43 - uVar50 & 0x3fff) +
  2315.                (uVar43 >> 0xe) *
  2316.                (*(ushort *)(param_1 + 0xfb40 + (ulonglong)(-(uVar13 ^ 0x1f) + 0x20) * 2) -uVar50);
  2317.           FUN_0041e010((undefined4 *)(param_1 + 0xfb40),uVar41);
  2318.           iVar18 = 0;
  2319.           if (*(byte *)(DAT_00431040 + uVar11) != 0) {
  2320.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_00431040 + uVar11));
  2321.             iVar18 = (int)uVar25;
  2322.           }
  2323.           pcVar28 = pcVar33 + 3;
  2324.           iVar18 = (iVar18 + *(int *)(&DAT_00431078 + uVar11 * 4)) - DAT_00431180;
  2325.           iVar8 = iVar8 - (iVar18 >> 1);
  2326.           uVar13 = iVar8 - (iVar19 >> 1);
  2327.           cVar42 = (char)uVar13;
  2328.           bVar49 = cVar42 + pcVar33[-1];
  2329.           puVar22 = (uint *)(ulonglong)(uVar13 & 0xffffff00 | (uint)bVar49);
  2330.           pcVar33[1] = (char)iVar18 + (char)iVar8 + pcVar33[-2];
  2331.           *pcVar33 = (char)iVar19 + cVar42 + pcVar33[-3];
  2332.           pcVar33[2] = bVar49;
  2333.           pcVar33 = pcVar28;
  2334.         } while (pcVar28 != pcVar44 + 9);
  2335. LAB_00404361:
  2336.         uVar25 = 0;
  2337.         iVar8 = 9;
  2338.         uVar13 = uStack256 + 9;
  2339.         goto LAB_00403130;
  2340.       case -0x17:
  2341.         auVar53 = (undefined  [16])0x0;
  2342.         pcVar44 = (char *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  2343.                           *(longlong *)(param_1 + 0x58));
  2344.         pcVar33 = pcVar44;
  2345.         do {
  2346.           uVar45 = SUB84(puVar22,0);
  2347.           uVar13 = *(uint *)(param_1 + 0x40);
  2348.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  2349.           *(uint *)(param_1 + 0x3c) = uVar13;
  2350.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  2351.           if (uVar13 < 0x10000) {
  2352.             FUN_00417f00(plVar1);
  2353.             uVar13 = *(uint *)(param_1 + 0x3c);
  2354.           }
  2355.                     /* WARNING: Load size is inaccurate */
  2356.           auVar54 = *(undefined *)(param_1 + 0xfb90);
  2357.                     /* WARNING: Load size is inaccurate */
  2358.           auVar55 = *(undefined *)(param_1 + 0xfba0);
  2359.           iVar8 = (uVar13 & 0x3fff) + 1;
  2360.           sVar12 = (short)iVar8;
  2361.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2362.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2363.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2364.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2365.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2366.                                                   >> 0x30,0) - sVar12,
  2367.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2368.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2369.                                                                     sVar12,SUB162(auVar54,0) -
  2370.                                                                            sVar12))))))),
  2371.                              CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar12,
  2372.                                        CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar12,
  2373.                                                  CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar12,
  2374.                                                            CONCAT28(SUB162(auVar55 >> 0x40,0) -
  2375.                                                                     sVar12,CONCAT26(SUB162(auVar55
  2376.                                                   >> 0x30,0) - sVar12,
  2377.                                                   CONCAT24(SUB162(auVar55 >> 0x20,0) - sVar12,
  2378.                                                            CONCAT22(SUB162(auVar55 >> 0x10,0) -
  2379.                                                                     sVar12,SUB162(auVar55,0) -
  2380.                                                                            sVar12))))))));
  2381.           uVar41 = pmovmskb(uVar45,auVar54);
  2382.                     /* WARNING: Load size is inaccurate */
  2383.           auVar54 = *(undefined *)(param_1 + 0xfbb0);
  2384.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2385.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2386.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2387.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2388.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2389.                                                   >> 0x30,0) - sVar12,
  2390.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2391.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2392.                                                                     sVar12,SUB162(auVar54,0) -
  2393.                                                                            sVar12))))))),auVar53);
  2394.           iVar8 = pmovmskb(iVar8,auVar54);
  2395.           uVar41 = iVar8 << 0x10 | uVar41;
  2396.           uVar43 = 0x1f;
  2397.           if (uVar41 != 0) {
  2398.             while (uVar41 >> uVar43 == 0) {
  2399.               uVar43 = uVar43 - 1;
  2400.             }
  2401.           }
  2402.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  2403.           uVar11 = (ulonglong)uVar41;
  2404.           uVar50 = (uint)*(ushort *)(param_1 + 0xfb90 + uVar11 * 2);
  2405.           *(int *)(param_1 + 0x3c) =
  2406.                (uVar13 - uVar50 & 0x3fff) +
  2407.                (uVar13 >> 0xe) *
  2408.                (*(ushort *)(param_1 + 0xfb90 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20) * 2) -uVar50);
  2409.           FUN_0041e010((undefined4 *)(param_1 + 0xfb90),uVar41);
  2410.           bVar49 = *(byte *)(DAT_004311a0 + uVar11);
  2411.           uVar13 = (uint)bVar49;
  2412.           cVar42 = '\0';
  2413.           if (bVar49 != 0) {
  2414.             uVar13 = (uint)bVar49;
  2415.             uVar25 = FUN_00417f40(plVar1,(uint)bVar49);
  2416.             cVar42 = (char)uVar25;
  2417.           }
  2418.           uVar52 = *(undefined4 *)(&DAT_004311d8 + uVar11 * 4);
  2419.           uVar43 = *(uint *)(param_1 + 0x40);
  2420.           uVar45 = *(undefined4 *)(param_1 + 0x3c);
  2421.           cVar37 = (char)DAT_004312e0;
  2422.           *(uint *)(param_1 + 0x3c) = uVar43;
  2423.           *(undefined4 *)(param_1 + 0x40) = uVar45;
  2424.           if (uVar43 < 0x10000) {
  2425.             FUN_00417f00(plVar1);
  2426.             uVar43 = *(uint *)(param_1 + 0x3c);
  2427.           }
  2428.                     /* WARNING: Load size is inaccurate */
  2429.           auVar54 = *(undefined *)(param_1 + 0xfbc0);
  2430.                     /* WARNING: Load size is inaccurate */
  2431.           auVar55 = *(undefined *)(param_1 + 0xfbd0);
  2432.           iVar8 = (uVar43 & 0x3fff) + 1;
  2433.           sVar12 = (short)iVar8;
  2434.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2435.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2436.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2437.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2438.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2439.                                                   >> 0x30,0) - sVar12,
  2440.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2441.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2442.                                                                     sVar12,SUB162(auVar54,0) -
  2443.                                                                            sVar12))))))),
  2444.                              CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar12,
  2445.                                        CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar12,
  2446.                                                  CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar12,
  2447.                                                            CONCAT28(SUB162(auVar55 >> 0x40,0) -
  2448.                                                                     sVar12,CONCAT26(SUB162(auVar55
  2449.                                                   >> 0x30,0) - sVar12,
  2450.                                                   CONCAT24(SUB162(auVar55 >> 0x20,0) - sVar12,
  2451.                                                            CONCAT22(SUB162(auVar55 >> 0x10,0) -
  2452.                                                                     sVar12,SUB162(auVar55,0) -
  2453.                                                                            sVar12))))))));
  2454.           uVar41 = pmovmskb(uVar13,auVar54);
  2455.                     /* WARNING: Load size is inaccurate */
  2456.           auVar54 = *(undefined *)(param_1 + 0xfbe0);
  2457.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2458.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2459.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2460.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2461.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2462.                                                   >> 0x30,0) - sVar12,
  2463.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2464.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2465.                                                                     sVar12,SUB162(auVar54,0) -
  2466.                                                                            sVar12))))))),auVar53);
  2467.           iVar8 = pmovmskb(iVar8,auVar54);
  2468.           uVar41 = iVar8 << 0x10 | uVar41;
  2469.           uVar13 = 0x1f;
  2470.           if (uVar41 != 0) {
  2471.             while (uVar41 >> uVar13 == 0) {
  2472.               uVar13 = uVar13 - 1;
  2473.             }
  2474.           }
  2475.           uVar41 = -(uVar13 ^ 0x1f) + 0x1f;
  2476.           uVar11 = (ulonglong)uVar41;
  2477.           uVar50 = (uint)*(ushort *)(param_1 + 0xfbc0 + uVar11 * 2);
  2478.           *(int *)(param_1 + 0x3c) =
  2479.                (uVar43 - uVar50 & 0x3fff) +
  2480.                (uVar43 >> 0xe) *
  2481.                (*(ushort *)(param_1 + 0xfbc0 + (ulonglong)(-(uVar13 ^ 0x1f) + 0x20) * 2) -uVar50);
  2482.           FUN_0041e010((undefined4 *)(param_1 + 0xfbc0),uVar41);
  2483.           bVar49 = *(byte *)(DAT_00431040 + uVar11);
  2484.           uVar13 = (uint)bVar49;
  2485.           iVar8 = 0;
  2486.           if (bVar49 != 0) {
  2487.             uVar13 = (uint)bVar49;
  2488.             uVar25 = FUN_00417f40(plVar1,(uint)bVar49);
  2489.             iVar8 = (int)uVar25;
  2490.           }
  2491.           uVar43 = *(uint *)(param_1 + 0x40);
  2492.           uVar45 = *(undefined4 *)(param_1 + 0x3c);
  2493.           iVar8 = (iVar8 + *(int *)(&DAT_00431078 + uVar11 * 4)) - DAT_00431180;
  2494.           *(uint *)(param_1 + 0x3c) = uVar43;
  2495.           *(undefined4 *)(param_1 + 0x40) = uVar45;
  2496.           if (uVar43 < 0x10000) {
  2497.             FUN_00417f00(plVar1);
  2498.             uVar43 = *(uint *)(param_1 + 0x3c);
  2499.           }
  2500.                     /* WARNING: Load size is inaccurate */
  2501.           auVar54 = *(undefined *)(param_1 + 0xfbf0);
  2502.                     /* WARNING: Load size is inaccurate */
  2503.           auVar55 = *(undefined *)(param_1 + 0xfc00);
  2504.           iVar19 = (uVar43 & 0x3fff) + 1;
  2505.           sVar12 = (short)iVar19;
  2506.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2507.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2508.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2509.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2510.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2511.                                                   >> 0x30,0) - sVar12,
  2512.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2513.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2514.                                                                     sVar12,SUB162(auVar54,0) -
  2515.                                                                            sVar12))))))),
  2516.                              CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar12,
  2517.                                        CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar12,
  2518.                                                  CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar12,
  2519.                                                            CONCAT28(SUB162(auVar55 >> 0x40,0) -
  2520.                                                                     sVar12,CONCAT26(SUB162(auVar55
  2521.                                                   >> 0x30,0) - sVar12,
  2522.                                                   CONCAT24(SUB162(auVar55 >> 0x20,0) - sVar12,
  2523.                                                            CONCAT22(SUB162(auVar55 >> 0x10,0) -
  2524.                                                                     sVar12,SUB162(auVar55,0) -
  2525.                                                                            sVar12))))))));
  2526.           uVar41 = pmovmskb(uVar13,auVar54);
  2527.                     /* WARNING: Load size is inaccurate */
  2528.           auVar54 = *(undefined *)(param_1 + 0xfc10);
  2529.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2530.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2531.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2532.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2533.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2534.                                                   >> 0x30,0) - sVar12,
  2535.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2536.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2537.                                                                     sVar12,SUB162(auVar54,0) -
  2538.                                                                            sVar12))))))),auVar53);
  2539.           iVar19 = pmovmskb(iVar19,auVar54);
  2540.           uVar41 = iVar19 << 0x10 | uVar41;
  2541.           uVar13 = 0x1f;
  2542.           if (uVar41 != 0) {
  2543.             while (uVar41 >> uVar13 == 0) {
  2544.               uVar13 = uVar13 - 1;
  2545.             }
  2546.           }
  2547.           uVar41 = -(uVar13 ^ 0x1f) + 0x1f;
  2548.           uVar11 = (ulonglong)uVar41;
  2549.           uVar50 = (uint)*(ushort *)(param_1 + 0xfbf0 + uVar11 * 2);
  2550.           *(int *)(param_1 + 0x3c) =
  2551.                (uVar43 - uVar50 & 0x3fff) +
  2552.                (uVar43 >> 0xe) *
  2553.                (*(ushort *)(param_1 + 0xfbf0 + (ulonglong)(-(uVar13 ^ 0x1f) + 0x20) * 2) -uVar50);
  2554.           FUN_0041e010((undefined4 *)(param_1 + 0xfbf0),uVar41);
  2555.           iVar19 = 0;
  2556.           if (*(byte *)(DAT_00431040 + uVar11) != 0) {
  2557.             uVar25 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_00431040 + uVar11));
  2558.             iVar19 = (int)uVar25;
  2559.           }
  2560.           iVar19 = (iVar19 + *(int *)(&DAT_00431078 + uVar11 * 4)) - DAT_00431180;
  2561.           cVar42 = ((cVar42 + (char)uVar52) - cVar37) - (char)(iVar19 >> 1);
  2562.           cVar37 = cVar42 - (char)(iVar8 >> 1);
  2563.           pcVar33[1] = (char)iVar19 + cVar42 + pcVar33[-3];
  2564.           *pcVar33 = (char)iVar8 + cVar37 + pcVar33[-4];
  2565.           pcVar33[2] = cVar37 + pcVar33[-2];
  2566.           uVar13 = *(uint *)(param_1 + 0x40);
  2567.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  2568.           *(uint *)(param_1 + 0x3c) = uVar13;
  2569.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  2570.           if (uVar13 < 0x10000) {
  2571.             FUN_00417f00(plVar1);
  2572.             uVar13 = *(uint *)(param_1 + 0x3c);
  2573.           }
  2574.                     /* WARNING: Load size is inaccurate */
  2575.           auVar54 = *(undefined *)(param_1 + 0xfc20);
  2576.                     /* WARNING: Load size is inaccurate */
  2577.           auVar55 = *(undefined *)(param_1 + 0xfc30);
  2578.           iVar8 = (uVar13 & 0x3fff) + 1;
  2579.           sVar12 = (short)iVar8;
  2580.           auVar54 = packsswb(CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  2581.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  2582.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  2583.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  2584.                                                                     sVar12,CONCAT26(SUB162(auVar54
  2585.                                                   >> 0x30,0) - sVar12,
  2586.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  2587.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  2588.                                                                     sVar12,SUB162(auVar54,0) -
  2589.                                                                            sVar12))))))),
  2590.                              CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar12,
  2591.                                        CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar12,
  2592.                                                  CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar12,
  2593.                                                            CONCAT28(SUB162(auVar55 >> 0x40,0) -
  2594.                                                                     sVar12,CONCAT26(SUB162(auVar55
  2595.                                                   >> 0x30,0) - sVar12,
  2596.                                                   CONCAT24(SUB162(auVar55 >> 0x20,0) - sVar12,
  2597.                                                            CONCAT22(SUB162(auVar55 >> 0x10,0) -
  2598.                                                                     sVar12,SUB162(auVar55,0) -
  2599.                                                                            sVar12))))))));
  2600.           uVar41 = pmovmskb(iVar8,auVar54);
  2601.           uVar43 = 0x1f;
  2602.           if (uVar41 != 0) {
  2603.             while (uVar41 >> uVar43 == 0) {
  2604.               uVar43 = uVar43 - 1;
  2605.             }
  2606.           }
  2607.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  2608.           uVar11 = (ulonglong)uVar41;
  2609.           uVar50 = (uint)*(ushort *)(param_1 + 0xfc20 + uVar11 * 2);
  2610.           *(int *)(param_1 + 0x3c) =
  2611.                (uVar13 - uVar50 & 0x3fff) +
  2612.                (*(ushort *)(param_1 + 0xfc20 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf) * 2) -
  2613.                 uVar50 & 0x3fff) * (uVar13 >> 0xe);
  2614.           FUN_00421ad0((undefined4 *)(param_1 + 0xfc20),uVar41);
  2615.           bVar49 = *(byte *)(DAT_00431720 + uVar11);
  2616.           puVar22 = (uint *)(ulonglong)bVar49;
  2617.           cVar42 = '\0';
  2618.           if (bVar49 != 0) {
  2619.             uVar25 = FUN_00417f40(plVar1,(uint)bVar49);
  2620.             cVar42 = (char)uVar25;
  2621.           }
  2622.           pcVar28 = pcVar33 + 4;
  2623.           pcVar33[3] = ((cVar42 + (char)(&DAT_00431758)[uVar11]) - (char)DAT_00431860) +pcVar33[-1]
  2624.           ;
  2625.           pcVar33 = pcVar28;
  2626.         } while (pcVar28 != pcVar44 + 8);
  2627.         break;
  2628.       case -0x16:
  2629.         uVar13 = *(uint *)(param_1 + 0x40);
  2630.         uVar52 = *(undefined4 *)(param_1 + 0x3c);
  2631.         *(uint *)(param_1 + 0x3c) = uVar13;
  2632.         *(undefined4 *)(param_1 + 0x40) = uVar52;
  2633.         if (uVar13 < 0x10000) {
  2634.           FUN_00417f00(plVar1);
  2635.           uVar13 = *(uint *)(param_1 + 0x3c);
  2636.         }
  2637.         uVar40 = *(ushort *)(param_1 + 0x10fb0);
  2638.         uVar43 = (int)(uint)uVar40 >> 4;
  2639.         if ((uVar13 & 0xfff) < uVar43) {
  2640.           *(int *)(param_1 + 0x3c) = (uVar13 >> 0xc) * uVar43 + (uVar13 & 0xfff);
  2641.           *(short *)(param_1 + 0x10fb0) = uVar40 + (-uVar40 >> 5);
  2642.           uVar11 = FUN_00417f40(plVar1,0x10);
  2643.           iVar19 = *(int *)(param_1 + 0x3c);
  2644.           iVar8 = (int)uVar11;
  2645.           *(int *)(param_1 + 0x10fb4) = iVar8;
  2646.         }
  2647.         else {
  2648.           *(short *)(param_1 + 0x10fb0) = uVar40 - (short)((int)(uint)uVar40 >> 5);
  2649.           iVar8 = *(int *)(param_1 + 0x10fb4);
  2650.           iVar19 = uVar13 - ((uVar13 >> 0xc) + 1) * uVar43;
  2651.           *(int *)(param_1 + 0x3c) = iVar19;
  2652.         }
  2653.         lVar14 = param_1 + 0xfc50;
  2654.         auVar53 = (undefined  [16])0x0;
  2655.         lVar21 = *(longlong *)(param_1 + 0xfc40);
  2656.         auVar54 = (undefined  [16])0x1000100010001;
  2657.         auVar55 = (undefined  [16])0x1000100010001;
  2658.         lVar23 = *(longlong *)(lVar21 + 0x10);
  2659.         uVar13 = uStack256 - *(int *)(lVar21 + 0x2c);
  2660.         iVar18 = (uVar13 - iVar8) + -3;
  2661.         iVar8 = (uStack256 + iVar8 * -2) - *(int *)(lVar21 + 0x2c);
  2662.         pbVar36 = (byte *)(lVar23 + 3 +
  2663.                           (ulonglong)((iVar18 >> 0x1f & *(uint *)(lVar21 + 0x20)) + iVar18));
  2664.         pbVar39 = (byte *)(lVar23 + (ulonglong)(iVar8 + (*(uint *)(lVar21 + 0x20) & iVar8 >>0x1f)))
  2665.         ;
  2666.         pbVar48 = pbVar36 + 0xc;
  2667.         puVar35 = (undefined *)((ulonglong)uVar13 + lVar23);
  2668.         while( true ) {
  2669.           *(short *)(param_1 + 0xfc50) = (ushort)*pbVar36 - (ushort)*pbVar39;
  2670.           *(short *)(param_1 + 0xfc52) = (ushort)pbVar36[1] - (ushort)pbVar39[1];
  2671.           *(short *)(param_1 + 0xfc54) = (ushort)pbVar36[2] - (ushort)pbVar39[2];
  2672.           *(short *)(param_1 + 0xfc56) = (ushort)*pbVar36 - (ushort)pbVar36[-3];
  2673.           *(short *)(param_1 + 0xfc58) = (ushort)pbVar36[1] - (ushort)pbVar36[-2];
  2674.           *(short *)(param_1 + 0xfc5a) = (ushort)pbVar36[2] - (ushort)pbVar36[-1];
  2675.           *(short *)(param_1 + 0xfc5c) = (ushort)*pbVar36 - (ushort)pbVar36[3];
  2676.           *(short *)(param_1 + 0xfc5e) = (ushort)pbVar36[1] - (ushort)pbVar36[4];
  2677.           *(short *)(param_1 + 0xfc60) = (ushort)pbVar36[2] - (ushort)pbVar36[5];
  2678.           *(short *)(param_1 + 0xfc62) = (ushort)pbVar36[-3] - (ushort)(byte)puVar35[-3];
  2679.           *(short *)(param_1 + 0xfc64) = (ushort)pbVar36[-2] - (ushort)(byte)puVar35[-2];
  2680.                     /* WARNING: Load size is inaccurate */
  2681.                     /* WARNING: Load size is inaccurate */
  2682.           auVar69 = pmaddwd(*(undefined *)(param_1 + 0xfc50),*(undefined *)(param_1 + 0xfc70));
  2683.           uVar11 = (ulonglong)*(uint *)(param_1 + 0xffd0);
  2684.           *(short *)(param_1 + 0xfc66) = (ushort)pbVar36[-1] - (ushort)(byte)puVar35[-1];
  2685.           *(short *)(param_1 + 0xfc68) = (ushort)(byte)puVar35[-6] - (ushort)(byte)puVar35[-3];
  2686.           *(short *)(param_1 + 0xfc6a) = (ushort)(byte)puVar35[-5] - (ushort)(byte)puVar35[-2];
  2687.           *(short *)(param_1 + 0xfc6c) = (ushort)(byte)puVar35[-4] - (ushort)(byte)puVar35[-1];
  2688.           *(undefined2 *)(param_1 + 0xfc6e) = 0;
  2689.                     /* WARNING: Load size is inaccurate */
  2690.                     /* WARNING: Load size is inaccurate */
  2691.           auVar65 = pmaddwd(*(undefined *)(param_1 + 0xfc60),*(undefined *)(param_1 + 0xfc80));
  2692.           iVar8 = SUB164(auVar65,0) + SUB164(auVar69,0) +
  2693.                   SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  2694.                   SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200 +
  2695.                   SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >> 10;
  2696.           bVar7 = 8 < iVar8 + 4U;
  2697.           uVar13 = *(uint *)(param_1 + 0x40);
  2698.           *(int *)(param_1 + 0x40) = iVar19;
  2699.           *(uint *)(param_1 + 0x3c) = uVar13;
  2700.           if (uVar13 < 0x10000) {
  2701.             FUN_00417f00(plVar1);
  2702.             uVar13 = *(uint *)(param_1 + 0x3c);
  2703.           }
  2704.           uVar25 = (ulonglong)bVar7;
  2705.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  2706.           lVar21 = uVar11 * 0x30 + uVar25 * 0x18;
  2707.           lVar23 = uVar25 * 0x30 + uVar11 * 0x60 + param_1;
  2708.                     /* WARNING: Load size is inaccurate */
  2709.           auVar65 = *(undefined *)(lVar23 + 0xfcd0);
  2710.                     /* WARNING: Load size is inaccurate */
  2711.           auVar69 = *(undefined *)(lVar23 + 0xfce0);
  2712.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  2713.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  2714.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  2715.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  2716.                                                                     sVar12,CONCAT26(SUB162(auVar65
  2717.                                                   >> 0x30,0) - sVar12,
  2718.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  2719.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  2720.                                                                     sVar12,SUB162(auVar65,0) -
  2721.                                                                            sVar12))))))),
  2722.                              CONCAT214(SUB162(auVar69 >> 0x70,0) - sVar12,
  2723.                                        CONCAT212(SUB162(auVar69 >> 0x60,0) - sVar12,
  2724.                                                  CONCAT210(SUB162(auVar69 >> 0x50,0) - sVar12,
  2725.                                                            CONCAT28(SUB162(auVar69 >> 0x40,0) -
  2726.                                                                     sVar12,CONCAT26(SUB162(auVar69
  2727.                                                   >> 0x30,0) - sVar12,
  2728.                                                   CONCAT24(SUB162(auVar69 >> 0x20,0) - sVar12,
  2729.                                                            CONCAT22(SUB162(auVar69 >> 0x10,0) -
  2730.                                                                     sVar12,SUB162(auVar69,0) -
  2731.                                                                            sVar12))))))));
  2732.           uVar41 = pmovmskb((int)(uVar11 * 0x60),auVar65);
  2733.                     /* WARNING: Load size is inaccurate */
  2734.           auVar65 = *(undefined *)(lVar23 + 0xfcf0);
  2735.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  2736.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  2737.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  2738.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  2739.                                                                     sVar12,CONCAT26(SUB162(auVar65
  2740.                                                   >> 0x30,0) - sVar12,
  2741.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  2742.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  2743.                                                                     sVar12,SUB162(auVar65,0) -
  2744.                                                                            sVar12))))))),auVar53);
  2745.           iVar19 = pmovmskb((int)lVar23,auVar65);
  2746.           uVar41 = iVar19 << 0x10 | uVar41;
  2747.           uVar43 = 0x1f;
  2748.           if (uVar41 != 0) {
  2749.             while (uVar41 >> uVar43 == 0) {
  2750.               uVar43 = uVar43 - 1;
  2751.             }
  2752.           }
  2753.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  2754.           uVar25 = (ulonglong)uVar41;
  2755.           uVar50 = (uint)*(ushort *)(param_1 + 0xfc50 + (lVar21 + 0x40 + uVar25) * 2);
  2756.           *(int *)(param_1 + 0x3c) =
  2757.                (uVar13 >> 0xe) *
  2758.                (*(ushort *)
  2759.                  (param_1 + 0xfc50 + (lVar21 + 0x40 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) * 2) -
  2760.                uVar50) + (uVar13 - uVar50 & 0x3fff);
  2761.           FUN_0041e3c0((undefined4 *)(uVar11 * 0x60 + 0x80 + (ulonglong)bVar7 * 0x30 + lVar14),
  2762.                        uVar41);
  2763.           iVar19 = 0;
  2764.           if (*(byte *)(DAT_004315c0 + uVar25) != 0) {
  2765.             uVar11 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_004315c0 + uVar25));
  2766.             iVar19 = (int)uVar11;
  2767.           }
  2768.           uVar13 = *(uint *)(param_1 + 0xffd0);
  2769.           uVar43 = (iVar19 + (&DAT_004315f8)[uVar25]) - DAT_00431700;
  2770.           if (uVar13 != 0) {
  2771.             uVar11 = FUN_00417f40(plVar1,uVar13);
  2772.             uVar13 = *(uint *)(param_1 + 0xffd0);
  2773.             uVar43 = uVar43 << ((byte)uVar13 & 0x1f) | (uint)uVar11;
  2774.           }
  2775.           if ((uint)(2 << ((byte)uVar13 & 0x1f)) < uVar43) {
  2776.             *(int *)(param_1 + 0xffd0) = uVar13 + 1;
  2777.           }
  2778.           else {
  2779.             if (uVar43 < (uint)(1 << ((byte)uVar13 & 0x1f))) {
  2780.               *(int *)(param_1 + 0xffd0) = uVar13 - (uVar13 + 0x1f >> 5);
  2781.             }
  2782.           }
  2783.           uVar13 = ~(uVar43 >> 1);
  2784.           if ((uVar43 & 1) == 0) {
  2785.             uVar13 = uVar43 >> 1;
  2786.           }
  2787.           if ((short)uVar13 != 0) {
  2788.                     /* WARNING: Load size is inaccurate */
  2789.             auVar65 = *(undefined *)(param_1 + 0xfc50);
  2790.             sVar12 = SUB162(auVar53 >> 0x10,0);
  2791.             sVar17 = SUB162(auVar53 >> 0x20,0);
  2792.             sVar57 = SUB162(auVar53 >> 0x30,0);
  2793.             sVar59 = SUB162(auVar53 >> 0x40,0);
  2794.             sVar60 = SUB162(auVar53 >> 0x50,0);
  2795.             sVar61 = SUB162(auVar53 >> 0x60,0);
  2796.             sVar62 = SUB162(auVar53 >> 0x70,0);
  2797.             uVar43 = uVar13 & 0xffff | uVar13 << 0x10;
  2798.             auVar67 = CONCAT412(uVar43,CONCAT48(uVar43,CONCAT44(uVar43,uVar43)));
  2799.             auVar69 = psraw(CONCAT214(sVar62 - SUB162(auVar65 >> 0x70,0),
  2800.                                       CONCAT212(sVar61 - SUB162(auVar65 >> 0x60,0),
  2801.                                                 CONCAT210(sVar60 - SUB162(auVar65 >> 0x50,0),
  2802.                                                           CONCAT28(sVar59 - SUB162(auVar65 >>0x40,0
  2803.                                                                                   ),
  2804.                                                                    CONCAT26(sVar57 -SUB162(auVar65
  2805.                                                   >> 0x30,0),
  2806.                                                   CONCAT24(sVar17 - SUB162(auVar65 >> 0x20,0),
  2807.                                                            CONCAT22(sVar12 - SUB162(auVar65 >>0x10,
  2808.                                                                                     0),
  2809.                                                                     SUB162(auVar53,0) -
  2810.                                                                     SUB162(auVar65,0)))))))) |
  2811.                             auVar65,0xf);
  2812.             auVar65 = psraw(auVar65 ^ auVar67,0xf);
  2813.             auVar69 = (auVar65 | auVar54) & auVar69;
  2814.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + *(short *)(param_1 + 0xfc72),
  2815.                               SUB162(auVar69,0) + *(short *)(param_1 + 0xfc70));
  2816.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + *(short *)(param_1 + 0xfc76),
  2817.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + *(short *)(param_1 + 0xfc74),
  2818.                                         uVar52));
  2819.             _uVar52 = CONCAT210(*(undefined2 *)(param_1 + 0xfc7a),
  2820.                                 CONCAT28(*(undefined2 *)(param_1 + 0xfc78),_uVar52));
  2821.             *(undefined4 *)(param_1 + 0xfc70) = uVar52;
  2822.             *(undefined4 *)(param_1 + 0xfc74) = (int)((ulonglong)_uVar52 >> 0x20);
  2823.             *(undefined4 *)(param_1 + 0xfc78) = SUB124(_uVar52 >> 0x40,0);
  2824.             *(undefined4 *)(param_1 + 0xfc7c) =
  2825.                  SUB164(CONCAT214(*(undefined2 *)(param_1 + 0xfc7e),
  2826.                                   CONCAT212(*(undefined2 *)(param_1 + 0xfc7c),_uVar52)) >>0x60,0);
  2827.                     /* WARNING: Load size is inaccurate */
  2828.             auVar65 = *(undefined *)(param_1 + 0xfc60);
  2829.             auVar69 = psraw(CONCAT214(sVar62 - SUB162(auVar65 >> 0x70,0),
  2830.                                       CONCAT212(sVar61 - SUB162(auVar65 >> 0x60,0),
  2831.                                                 CONCAT210(sVar60 - SUB162(auVar65 >> 0x50,0),
  2832.                                                           CONCAT28(sVar59 - SUB162(auVar65 >>0x40,0
  2833.                                                                                   ),
  2834.                                                                    CONCAT26(sVar57 -SUB162(auVar65
  2835.                                                   >> 0x30,0),
  2836.                                                   CONCAT24(sVar17 - SUB162(auVar65 >> 0x20,0),
  2837.                                                            CONCAT22(sVar12 - SUB162(auVar65 >>0x10,
  2838.                                                                                     0),
  2839.                                                                     SUB162(auVar53,0) -
  2840.                                                                     SUB162(auVar65,0)))))))) |
  2841.                             auVar65,0xf);
  2842.             auVar65 = psraw(auVar65 ^ auVar67,0xf);
  2843.             auVar69 = (auVar65 | auVar54) & auVar69;
  2844.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + *(short *)(param_1 + 0xfc82),
  2845.                               SUB162(auVar69,0) + *(short *)(param_1 + 0xfc80));
  2846.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + *(short *)(param_1 + 0xfc86),
  2847.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + *(short *)(param_1 + 0xfc84),
  2848.                                         uVar52));
  2849.             _uVar52 = CONCAT210(*(undefined2 *)(param_1 + 0xfc8a),
  2850.                                 CONCAT28(*(undefined2 *)(param_1 + 0xfc88),_uVar52));
  2851.             *(undefined4 *)(param_1 + 0xfc80) = uVar52;
  2852.             *(undefined4 *)(param_1 + 0xfc84) = (int)((ulonglong)_uVar52 >> 0x20);
  2853.             *(undefined4 *)(param_1 + 0xfc88) = SUB124(_uVar52 >> 0x40,0);
  2854.             *(undefined4 *)(param_1 + 0xfc8c) =
  2855.                  SUB164(CONCAT214(*(undefined2 *)(param_1 + 0xfc8e),
  2856.                                   CONCAT212(*(undefined2 *)(param_1 + 0xfc8c),_uVar52)) >>0x60,0);
  2857.           }
  2858.           iVar8 = uVar13 + iVar8 + (uint)(byte)puVar35[-2];
  2859.           puVar35[1] = (char)iVar8;
  2860.                     /* WARNING: Load size is inaccurate */
  2861.                     /* WARNING: Load size is inaccurate */
  2862.           auVar69 = pmaddwd(*(undefined *)(param_1 + 0xfc50),*(undefined *)(param_1 + 0xfc90));
  2863.           uVar11 = (ulonglong)*(uint *)(param_1 + 0x102e0);
  2864.           *(short *)(param_1 + 0xfc6e) = ((ushort)iVar8 & 0xff) - (ushort)(byte)puVar35[-2];
  2865.                     /* WARNING: Load size is inaccurate */
  2866.                     /* WARNING: Load size is inaccurate */
  2867.           auVar65 = pmaddwd(*(undefined *)(param_1 + 0xfc60),*(undefined *)(param_1 + 0xfca0));
  2868.           iVar8 = SUB164(auVar65,0) + SUB164(auVar69,0) +
  2869.                   SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  2870.                   SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200 +
  2871.                   SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >> 10;
  2872.           bVar7 = 8 < iVar8 + 4U;
  2873.           uVar13 = *(uint *)(param_1 + 0x40);
  2874.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  2875.           *(uint *)(param_1 + 0x3c) = uVar13;
  2876.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  2877.           if (uVar13 < 0x10000) {
  2878.             FUN_00417f00(plVar1);
  2879.             uVar13 = *(uint *)(param_1 + 0x3c);
  2880.           }
  2881.           uVar25 = (ulonglong)bVar7;
  2882.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  2883.           lVar21 = uVar11 * 0x30 + uVar25 * 0x18;
  2884.           lVar23 = uVar25 * 0x30 + uVar11 * 0x60 + param_1;
  2885.                     /* WARNING: Load size is inaccurate */
  2886.           auVar65 = *(undefined *)(lVar23 + 0xffe0);
  2887.                     /* WARNING: Load size is inaccurate */
  2888.           auVar69 = *(undefined *)(lVar23 + 0xfff0);
  2889.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  2890.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  2891.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  2892.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  2893.                                                                     sVar12,CONCAT26(SUB162(auVar65
  2894.                                                   >> 0x30,0) - sVar12,
  2895.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  2896.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  2897.                                                                     sVar12,SUB162(auVar65,0) -
  2898.                                                                            sVar12))))))),
  2899.                              CONCAT214(SUB162(auVar69 >> 0x70,0) - sVar12,
  2900.                                        CONCAT212(SUB162(auVar69 >> 0x60,0) - sVar12,
  2901.                                                  CONCAT210(SUB162(auVar69 >> 0x50,0) - sVar12,
  2902.                                                            CONCAT28(SUB162(auVar69 >> 0x40,0) -
  2903.                                                                     sVar12,CONCAT26(SUB162(auVar69
  2904.                                                   >> 0x30,0) - sVar12,
  2905.                                                   CONCAT24(SUB162(auVar69 >> 0x20,0) - sVar12,
  2906.                                                            CONCAT22(SUB162(auVar69 >> 0x10,0) -
  2907.                                                                     sVar12,SUB162(auVar69,0) -
  2908.                                                                            sVar12))))))));
  2909.           uVar41 = pmovmskb((int)(uVar11 * 0x60),auVar65);
  2910.                     /* WARNING: Load size is inaccurate */
  2911.           auVar65 = *(undefined *)(lVar23 + 0x10000);
  2912.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  2913.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  2914.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  2915.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  2916.                                                                     sVar12,CONCAT26(SUB162(auVar65
  2917.                                                   >> 0x30,0) - sVar12,
  2918.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  2919.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  2920.                                                                     sVar12,SUB162(auVar65,0) -
  2921.                                                                            sVar12))))))),auVar53);
  2922.           iVar19 = pmovmskb((int)lVar23,auVar65);
  2923.           uVar41 = iVar19 << 0x10 | uVar41;
  2924.           uVar43 = 0x1f;
  2925.           if (uVar41 != 0) {
  2926.             while (uVar41 >> uVar43 == 0) {
  2927.               uVar43 = uVar43 - 1;
  2928.             }
  2929.           }
  2930.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  2931.           uVar25 = (ulonglong)uVar41;
  2932.           uVar50 = (uint)*(ushort *)(param_1 + 0xfc50 + (lVar21 + 0x1c8 + uVar25) * 2);
  2933.           *(int *)(param_1 + 0x3c) =
  2934.                (uVar13 >> 0xe) *
  2935.                (*(ushort *)
  2936.                  (param_1 + 0xfc50 + (lVar21 + 0x1c8 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) * 2)-
  2937.                uVar50) + (uVar13 - uVar50 & 0x3fff);
  2938.           FUN_0041e3c0((undefined4 *)(uVar11 * 0x60 + 0x390 + (ulonglong)bVar7 * 0x30 + lVar14),
  2939.                        uVar41);
  2940.           iVar19 = 0;
  2941.           if (*(byte *)(DAT_004315c0 + uVar25) != 0) {
  2942.             uVar11 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_004315c0 + uVar25));
  2943.             iVar19 = (int)uVar11;
  2944.           }
  2945.           uVar13 = *(uint *)(param_1 + 0x102e0);
  2946.           uVar43 = (iVar19 + (&DAT_004315f8)[uVar25]) - DAT_00431700;
  2947.           if (uVar13 != 0) {
  2948.             uVar11 = FUN_00417f40(plVar1,uVar13);
  2949.             uVar13 = *(uint *)(param_1 + 0x102e0);
  2950.             uVar43 = uVar43 << ((byte)uVar13 & 0x1f) | (uint)uVar11;
  2951.           }
  2952.           if ((uint)(2 << ((byte)uVar13 & 0x1f)) < uVar43) {
  2953.             *(int *)(param_1 + 0x102e0) = uVar13 + 1;
  2954.           }
  2955.           else {
  2956.             if (uVar43 < (uint)(1 << ((byte)uVar13 & 0x1f))) {
  2957.               *(int *)(param_1 + 0x102e0) = uVar13 - (uVar13 + 0x1f >> 5);
  2958.             }
  2959.           }
  2960.           uVar13 = ~(uVar43 >> 1);
  2961.           if ((uVar43 & 1) == 0) {
  2962.             uVar13 = uVar43 >> 1;
  2963.           }
  2964.           if ((short)uVar13 != 0) {
  2965.                     /* WARNING: Load size is inaccurate */
  2966.             auVar65 = *(undefined *)(param_1 + 0xfc50);
  2967.             sVar12 = SUB162(auVar53 >> 0x10,0);
  2968.             sVar17 = SUB162(auVar53 >> 0x20,0);
  2969.             sVar57 = SUB162(auVar53 >> 0x30,0);
  2970.             sVar59 = SUB162(auVar53 >> 0x40,0);
  2971.             sVar60 = SUB162(auVar53 >> 0x50,0);
  2972.             sVar61 = SUB162(auVar53 >> 0x60,0);
  2973.             sVar62 = SUB162(auVar53 >> 0x70,0);
  2974.             uVar43 = uVar13 & 0xffff | uVar13 << 0x10;
  2975.             auVar67 = CONCAT412(uVar43,CONCAT48(uVar43,CONCAT44(uVar43,uVar43)));
  2976.             auVar69 = psraw(CONCAT214(sVar62 - SUB162(auVar65 >> 0x70,0),
  2977.                                       CONCAT212(sVar61 - SUB162(auVar65 >> 0x60,0),
  2978.                                                 CONCAT210(sVar60 - SUB162(auVar65 >> 0x50,0),
  2979.                                                           CONCAT28(sVar59 - SUB162(auVar65 >>0x40,0
  2980.                                                                                   ),
  2981.                                                                    CONCAT26(sVar57 -SUB162(auVar65
  2982.                                                   >> 0x30,0),
  2983.                                                   CONCAT24(sVar17 - SUB162(auVar65 >> 0x20,0),
  2984.                                                            CONCAT22(sVar12 - SUB162(auVar65 >>0x10,
  2985.                                                                                     0),
  2986.                                                                     SUB162(auVar53,0) -
  2987.                                                                     SUB162(auVar65,0)))))))) |
  2988.                             auVar65,0xf);
  2989.             auVar65 = psraw(auVar65 ^ auVar67,0xf);
  2990.             auVar69 = (auVar65 | auVar55) & auVar69;
  2991.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + *(short *)(param_1 + 0xfc92),
  2992.                               SUB162(auVar69,0) + *(short *)(param_1 + 0xfc90));
  2993.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + *(short *)(param_1 + 0xfc96),
  2994.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + *(short *)(param_1 + 0xfc94),
  2995.                                         uVar52));
  2996.             _uVar52 = CONCAT210(*(undefined2 *)(param_1 + 0xfc9a),
  2997.                                 CONCAT28(*(undefined2 *)(param_1 + 0xfc98),_uVar52));
  2998.             *(undefined4 *)(param_1 + 0xfc90) = uVar52;
  2999.             *(undefined4 *)(param_1 + 0xfc94) = (int)((ulonglong)_uVar52 >> 0x20);
  3000.             *(undefined4 *)(param_1 + 0xfc98) = SUB124(_uVar52 >> 0x40,0);
  3001.             *(undefined4 *)(param_1 + 0xfc9c) =
  3002.                  SUB164(CONCAT214(*(undefined2 *)(param_1 + 0xfc9e),
  3003.                                   CONCAT212(*(undefined2 *)(param_1 + 0xfc9c),_uVar52)) >>0x60,0);
  3004.                     /* WARNING: Load size is inaccurate */
  3005.             auVar65 = *(undefined *)(param_1 + 0xfc60);
  3006.             auVar69 = psraw(CONCAT214(sVar62 - SUB162(auVar65 >> 0x70,0),
  3007.                                       CONCAT212(sVar61 - SUB162(auVar65 >> 0x60,0),
  3008.                                                 CONCAT210(sVar60 - SUB162(auVar65 >> 0x50,0),
  3009.                                                           CONCAT28(sVar59 - SUB162(auVar65 >>0x40,0
  3010.                                                                                   ),
  3011.                                                                    CONCAT26(sVar57 -SUB162(auVar65
  3012.                                                   >> 0x30,0),
  3013.                                                   CONCAT24(sVar17 - SUB162(auVar65 >> 0x20,0),
  3014.                                                            CONCAT22(sVar12 - SUB162(auVar65 >>0x10,
  3015.                                                                                     0),
  3016.                                                                     SUB162(auVar53,0) -
  3017.                                                                     SUB162(auVar65,0)))))))) |
  3018.                             auVar65,0xf);
  3019.             auVar65 = psraw(auVar65 ^ auVar67,0xf);
  3020.             auVar69 = (auVar65 | auVar55) & auVar69;
  3021.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + *(short *)(param_1 + 0xfca2),
  3022.                               SUB162(auVar69,0) + *(short *)(param_1 + 0xfca0));
  3023.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + *(short *)(param_1 + 0xfca6),
  3024.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + *(short *)(param_1 + 0xfca4),
  3025.                                         uVar52));
  3026.             _uVar52 = CONCAT210(*(undefined2 *)(param_1 + 0xfcaa),
  3027.                                 CONCAT28(*(undefined2 *)(param_1 + 0xfca8),_uVar52));
  3028.             *(undefined4 *)(param_1 + 0xfca0) = uVar52;
  3029.             *(undefined4 *)(param_1 + 0xfca4) = (int)((ulonglong)_uVar52 >> 0x20);
  3030.             *(undefined4 *)(param_1 + 0xfca8) = SUB124(_uVar52 >> 0x40,0);
  3031.             *(undefined4 *)(param_1 + 0xfcac) =
  3032.                  SUB164(CONCAT214(*(undefined2 *)(param_1 + 0xfcae),
  3033.                                   CONCAT212(*(undefined2 *)(param_1 + 0xfcac),_uVar52)) >>0x60,0);
  3034.           }
  3035.           iVar8 = uVar13 + iVar8 + (uint)(byte)puVar35[-3];
  3036.           *puVar35 = (char)iVar8;
  3037.           uVar11 = (ulonglong)*(uint *)(param_1 + 0x105f0);
  3038.                     /* WARNING: Load size is inaccurate */
  3039.                     /* WARNING: Load size is inaccurate */
  3040.           auVar65 = pmaddwd(*(undefined *)(param_1 + 0xfc60),*(undefined *)(param_1 + 0xfcc0));
  3041.           *(short *)(param_1 + 0xfc50) = ((ushort)iVar8 & 0xff) - (ushort)(byte)puVar35[-3];
  3042.                     /* WARNING: Load size is inaccurate */
  3043.                     /* WARNING: Load size is inaccurate */
  3044.           auVar69 = pmaddwd(*(undefined *)(param_1 + 0xfc50),*(undefined *)(param_1 + 0xfcb0));
  3045.           iVar8 = SUB164(auVar65,0) + SUB164(auVar69,0) +
  3046.                   SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  3047.                   SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200 +
  3048.                   SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >> 10;
  3049.           bVar7 = 8 < iVar8 + 4U;
  3050.           uVar13 = *(uint *)(param_1 + 0x40);
  3051.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  3052.           *(uint *)(param_1 + 0x3c) = uVar13;
  3053.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  3054.           if (uVar13 < 0x10000) {
  3055.             FUN_00417f00(plVar1);
  3056.             uVar13 = *(uint *)(param_1 + 0x3c);
  3057.           }
  3058.           uVar25 = (ulonglong)bVar7;
  3059.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  3060.           lVar21 = uVar11 * 0x30 + uVar25 * 0x18;
  3061.           lVar23 = uVar25 * 0x30 + uVar11 * 0x60 + param_1;
  3062.                     /* WARNING: Load size is inaccurate */
  3063.           auVar65 = *(undefined *)(lVar23 + 0x102f0);
  3064.                     /* WARNING: Load size is inaccurate */
  3065.           auVar69 = *(undefined *)(lVar23 + 0x10300);
  3066.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  3067.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  3068.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  3069.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  3070.                                                                     sVar12,CONCAT26(SUB162(auVar65
  3071.                                                   >> 0x30,0) - sVar12,
  3072.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  3073.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  3074.                                                                     sVar12,SUB162(auVar65,0) -
  3075.                                                                            sVar12))))))),
  3076.                              CONCAT214(SUB162(auVar69 >> 0x70,0) - sVar12,
  3077.                                        CONCAT212(SUB162(auVar69 >> 0x60,0) - sVar12,
  3078.                                                  CONCAT210(SUB162(auVar69 >> 0x50,0) - sVar12,
  3079.                                                            CONCAT28(SUB162(auVar69 >> 0x40,0) -
  3080.                                                                     sVar12,CONCAT26(SUB162(auVar69
  3081.                                                   >> 0x30,0) - sVar12,
  3082.                                                   CONCAT24(SUB162(auVar69 >> 0x20,0) - sVar12,
  3083.                                                            CONCAT22(SUB162(auVar69 >> 0x10,0) -
  3084.                                                                     sVar12,SUB162(auVar69,0) -
  3085.                                                                            sVar12))))))));
  3086.           uVar41 = pmovmskb((int)(uVar11 * 0x60),auVar65);
  3087.                     /* WARNING: Load size is inaccurate */
  3088.           auVar65 = *(undefined *)(lVar23 + 0x10310);
  3089.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  3090.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  3091.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  3092.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  3093.                                                                     sVar12,CONCAT26(SUB162(auVar65
  3094.                                                   >> 0x30,0) - sVar12,
  3095.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  3096.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  3097.                                                                     sVar12,SUB162(auVar65,0) -
  3098.                                                                            sVar12))))))),auVar53);
  3099.           iVar19 = pmovmskb((int)lVar23,auVar65);
  3100.           uVar41 = iVar19 << 0x10 | uVar41;
  3101.           uVar43 = 0x1f;
  3102.           if (uVar41 != 0) {
  3103.             while (uVar41 >> uVar43 == 0) {
  3104.               uVar43 = uVar43 - 1;
  3105.             }
  3106.           }
  3107.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  3108.           uVar25 = (ulonglong)uVar41;
  3109.           uVar50 = (uint)*(ushort *)(param_1 + 0xfc50 + (lVar21 + 0x350 + uVar25) * 2);
  3110.           *(int *)(param_1 + 0x3c) =
  3111.                (uVar13 >> 0xe) *
  3112.                (*(ushort *)
  3113.                  (param_1 + 0xfc50 + (lVar21 + 0x350 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) * 2)-
  3114.                uVar50) + (uVar13 - uVar50 & 0x3fff);
  3115.           FUN_0041e3c0((undefined4 *)(uVar11 * 0x60 + 0x6a0 + (ulonglong)bVar7 * 0x30 + lVar14),
  3116.                        uVar41);
  3117.           iVar19 = 0;
  3118.           if (*(byte *)(DAT_004315c0 + uVar25) != 0) {
  3119.             uVar11 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_004315c0 + uVar25));
  3120.             iVar19 = (int)uVar11;
  3121.           }
  3122.           uVar13 = *(uint *)(param_1 + 0x105f0);
  3123.           uVar43 = (iVar19 + (&DAT_004315f8)[uVar25]) - DAT_00431700;
  3124.           if (uVar13 != 0) {
  3125.             uVar11 = FUN_00417f40(plVar1,uVar13);
  3126.             uVar13 = *(uint *)(param_1 + 0x105f0);
  3127.             uVar43 = uVar43 << ((byte)uVar13 & 0x1f) | (uint)uVar11;
  3128.           }
  3129.           if ((uint)(2 << ((byte)uVar13 & 0x1f)) < uVar43) {
  3130.             *(int *)(param_1 + 0x105f0) = uVar13 + 1;
  3131.           }
  3132.           else {
  3133.             if (uVar43 < (uint)(1 << ((byte)uVar13 & 0x1f))) {
  3134.               *(int *)(param_1 + 0x105f0) = uVar13 - (uVar13 + 0x1f >> 5);
  3135.             }
  3136.           }
  3137.           uVar13 = ~(uVar43 >> 1);
  3138.           if ((uVar43 & 1) == 0) {
  3139.             uVar13 = uVar43 >> 1;
  3140.           }
  3141.           if ((short)uVar13 != 0) {
  3142.                     /* WARNING: Load size is inaccurate */
  3143.             auVar65 = *(undefined *)(param_1 + 0xfc50);
  3144.             sVar12 = SUB162(auVar53 >> 0x10,0);
  3145.             sVar17 = SUB162(auVar53 >> 0x20,0);
  3146.             sVar57 = SUB162(auVar53 >> 0x30,0);
  3147.             sVar59 = SUB162(auVar53 >> 0x40,0);
  3148.             sVar60 = SUB162(auVar53 >> 0x50,0);
  3149.             sVar61 = SUB162(auVar53 >> 0x60,0);
  3150.             sVar62 = SUB162(auVar53 >> 0x70,0);
  3151.             uVar43 = uVar13 & 0xffff | uVar13 << 0x10;
  3152.             auVar67 = CONCAT412(uVar43,CONCAT48(uVar43,CONCAT44(uVar43,uVar43)));
  3153.             auVar69 = psraw(CONCAT214(sVar62 - SUB162(auVar65 >> 0x70,0),
  3154.                                       CONCAT212(sVar61 - SUB162(auVar65 >> 0x60,0),
  3155.                                                 CONCAT210(sVar60 - SUB162(auVar65 >> 0x50,0),
  3156.                                                           CONCAT28(sVar59 - SUB162(auVar65 >>0x40,0
  3157.                                                                                   ),
  3158.                                                                    CONCAT26(sVar57 -SUB162(auVar65
  3159.                                                   >> 0x30,0),
  3160.                                                   CONCAT24(sVar17 - SUB162(auVar65 >> 0x20,0),
  3161.                                                            CONCAT22(sVar12 - SUB162(auVar65 >>0x10,
  3162.                                                                                     0),
  3163.                                                                     SUB162(auVar53,0) -
  3164.                                                                     SUB162(auVar65,0)))))))) |
  3165.                             auVar65,0xf);
  3166.             auVar65 = psraw(auVar65 ^ auVar67,0xf);
  3167.             auVar69 = (auVar65 | (undefined  [16])0x1000100010001) & auVar69;
  3168.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + *(short *)(param_1 + 0xfcb2),
  3169.                               SUB162(auVar69,0) + *(short *)(param_1 + 0xfcb0));
  3170.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + *(short *)(param_1 + 0xfcb6),
  3171.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + *(short *)(param_1 + 0xfcb4),
  3172.                                         uVar52));
  3173.             _uVar52 = CONCAT210(*(undefined2 *)(param_1 + 0xfcba),
  3174.                                 CONCAT28(*(undefined2 *)(param_1 + 0xfcb8),_uVar52));
  3175.             *(undefined4 *)(param_1 + 0xfcb0) = uVar52;
  3176.             *(undefined4 *)(param_1 + 0xfcb4) = (int)((ulonglong)_uVar52 >> 0x20);
  3177.             *(undefined4 *)(param_1 + 0xfcb8) = SUB124(_uVar52 >> 0x40,0);
  3178.             *(undefined4 *)(param_1 + 0xfcbc) =
  3179.                  SUB164(CONCAT214(*(undefined2 *)(param_1 + 0xfcbe),
  3180.                                   CONCAT212(*(undefined2 *)(param_1 + 0xfcbc),_uVar52)) >>0x60,0);
  3181.                     /* WARNING: Load size is inaccurate */
  3182.             auVar65 = *(undefined *)(param_1 + 0xfc60);
  3183.             auVar69 = psraw(CONCAT214(sVar62 - SUB162(auVar65 >> 0x70,0),
  3184.                                       CONCAT212(sVar61 - SUB162(auVar65 >> 0x60,0),
  3185.                                                 CONCAT210(sVar60 - SUB162(auVar65 >> 0x50,0),
  3186.                                                           CONCAT28(sVar59 - SUB162(auVar65 >>0x40,0
  3187.                                                                                   ),
  3188.                                                                    CONCAT26(sVar57 -SUB162(auVar65
  3189.                                                   >> 0x30,0),
  3190.                                                   CONCAT24(sVar17 - SUB162(auVar65 >> 0x20,0),
  3191.                                                            CONCAT22(sVar12 - SUB162(auVar65 >>0x10,
  3192.                                                                                     0),
  3193.                                                                     SUB162(auVar53,0) -
  3194.                                                                     SUB162(auVar65,0)))))))) |
  3195.                             auVar65,0xf);
  3196.             auVar65 = psraw(auVar65 ^ auVar67,0xf);
  3197.             auVar69 = (auVar65 | (undefined  [16])0x1000100010001) & auVar69;
  3198.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + *(short *)(param_1 + 0xfcc2),
  3199.                               SUB162(auVar69,0) + *(short *)(param_1 + 0xfcc0));
  3200.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + *(short *)(param_1 + 0xfcc6),
  3201.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + *(short *)(param_1 + 0xfcc4),
  3202.                                         uVar52));
  3203.             _uVar52 = CONCAT210(*(undefined2 *)(param_1 + 0xfcca),
  3204.                                 CONCAT28(*(undefined2 *)(param_1 + 0xfcc8),_uVar52));
  3205.             *(undefined4 *)(param_1 + 0xfcc0) = uVar52;
  3206.             *(undefined4 *)(param_1 + 0xfcc4) = (int)((ulonglong)_uVar52 >> 0x20);
  3207.             *(undefined4 *)(param_1 + 0xfcc8) = SUB124(_uVar52 >> 0x40,0);
  3208.             *(undefined4 *)(param_1 + 0xfccc) =
  3209.                  SUB164(CONCAT214(*(undefined2 *)(param_1 + 0xfcce),
  3210.                                   CONCAT212(*(undefined2 *)(param_1 + 0xfccc),_uVar52)) >>0x60,0);
  3211.           }
  3212.           pbVar36 = pbVar36 + 3;
  3213.           pbVar39 = pbVar39 + 3;
  3214.           puVar35[2] = (char)uVar13 + (char)iVar8 + puVar35[-1];
  3215.           if (pbVar36 == pbVar48) break;
  3216.           iVar19 = *(int *)(param_1 + 0x3c);
  3217.           puVar35 = puVar35 + 3;
  3218.         }
  3219.         uVar25 = 0;
  3220.         iVar8 = 0xc;
  3221.         uVar13 = uStack256 + 0xc;
  3222.         goto LAB_00403130;
  3223.       case -0x15:
  3224.         pcVar33 = (char *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  3225.                           *(longlong *)(param_1 + 0x58));
  3226.         if (*(uint *)(param_1 + 0x117e0) != uStack256) {
  3227.           pcVar44 = pcVar33 + -0x10;
  3228.           do {
  3229.             puVar16 = *(undefined4 **)(param_1 + 0x11410);
  3230.                     /* WARNING: Load size is inaccurate */
  3231.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x113e0) >> 0x10,0);
  3232.                     /* WARNING: Load size is inaccurate */
  3233.             auVar53 = *(undefined *)(param_1 + 0x113d0);
  3234.             auVar58 = SUB1614(auVar53 >> 0x10,0);
  3235.                     /* WARNING: Load size is inaccurate */
  3236.             auVar54 = *(undefined *)(puVar16 + 4);
  3237.                     /* WARNING: Load size is inaccurate */
  3238.             auVar55 = *(undefined *)puVar16;
  3239.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x113e0),auVar54);
  3240.             cVar42 = *pcVar44 + -0x80;
  3241.             auVar69 = pmaddwd(auVar53,auVar55);
  3242.             uVar13 = SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0);
  3243.             cVar37 = cVar42 - (char)((int)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  3244.                                            SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  3245.                                            SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) +
  3246.                                            0x800 + uVar13) >> 0xc);
  3247.             uVar40 = SEXT12(cVar37);
  3248.             puVar15 = (undefined4 *)(ulonglong)(uVar13 & 0xffff0000 | (uint)uVar40);
  3249.             if (uVar40 != 0) {
  3250.               uVar52 = CONCAT22(uVar40,uVar40);
  3251.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  3252.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3253.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3254.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3255.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3256.                                                                      CONCAT26(-SUB162(auVar53 >>
  3257.                                                                                       0x30,0),
  3258.                                                                               CONCAT24(-SUB162(
  3259.                                                   auVar53 >> 0x20,0),
  3260.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3261.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3262.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3263.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  3264.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  3265.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  3266.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  3267.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  3268.                                           uVar52));
  3269.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  3270.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  3271.               *puVar16 = uVar52;
  3272.               puVar16[1] = (int)((ulonglong)_uVar52 >> 0x20);
  3273.               puVar16[2] = SUB124(_uVar52 >> 0x40,0);
  3274.               puVar16[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  3275.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  3276.               ;
  3277.                     /* WARNING: Load size is inaccurate */
  3278.               auVar53 = *(undefined *)(param_1 + 0x113e0);
  3279.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3280.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3281.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3282.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3283.                                                                      CONCAT26(-SUB162(auVar53 >>
  3284.                                                                                       0x30,0),
  3285.                                                                               CONCAT24(-SUB162(
  3286.                                                   auVar53 >> 0x20,0),
  3287.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3288.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3289.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3290.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  3291.               uVar52 = CONCAT22(SUB162(auVar54 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  3292.                                 SUB162(auVar54,0) + SUB162(auVar55,0));
  3293.               _uVar52 = CONCAT26(SUB162(auVar54 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  3294.                                  CONCAT24(SUB162(auVar54 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  3295.                                           uVar52));
  3296.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  3297.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  3298.               puVar16[4] = uVar52;
  3299.               puVar16[5] = (int)((ulonglong)_uVar52 >> 0x20);
  3300.               puVar16[6] = SUB124(_uVar52 >> 0x40,0);
  3301.               puVar16[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  3302.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  3303.               ;
  3304.                     /* WARNING: Load size is inaccurate */
  3305.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x113d0) >> 0x10,0);
  3306.                     /* WARNING: Load size is inaccurate */
  3307.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x113e0) >> 0x10,0);
  3308.             }
  3309.             uVar5 = *(undefined2 *)(param_1 + 0x113e0);
  3310.             *(undefined4 *)(param_1 + 0x113d0) = SUB144(auVar58,0);
  3311.             *(undefined4 *)(param_1 + 0x113d4) = SUB144(auVar58 >> 0x20,0);
  3312.             *(undefined4 *)(param_1 + 0x113d8) = SUB144(auVar58 >> 0x40,0);
  3313.             *(uint *)(param_1 + 0x113dc) = SUB144(auVar58 >> 0x60,0);
  3314.                     /* WARNING: Load size is inaccurate */
  3315.             auVar53 = *(undefined *)(param_1 + 0x11420);
  3316.             auVar58 = SUB1614(auVar53 >> 0x10,0);
  3317.             *(undefined4 *)(param_1 + 0x113e0) = SUB144(auVar70,0);
  3318.             *(undefined4 *)(param_1 + 0x113e4) = SUB144(auVar70 >> 0x20,0);
  3319.             *(undefined4 *)(param_1 + 0x113e8) = SUB144(auVar70 >> 0x40,0);
  3320.             *(uint *)(param_1 + 0x113ec) = SUB144(auVar70 >> 0x60,0);
  3321.                     /* WARNING: Load size is inaccurate */
  3322.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x11430) >> 0x10,0);
  3323.             *(short *)(param_1 + 0x113ec) = *(short *)(param_1 + 0x113ec) - (short)cVar42;
  3324.             *(short *)(param_1 + 0x113ee) = (short)cVar42;
  3325.             *(undefined2 *)(param_1 + 0x113de) = uVar5;
  3326.             puVar16 = *(undefined4 **)(param_1 + 0x11460);
  3327.                     /* WARNING: Load size is inaccurate */
  3328.             auVar54 = *(undefined *)(puVar16 + 4);
  3329.                     /* WARNING: Load size is inaccurate */
  3330.             auVar55 = *(undefined *)puVar16;
  3331.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x11430),auVar54);
  3332.             auVar69 = pmaddwd(auVar53,auVar55);
  3333.             sVar12 = (short)(char)(cVar37 - (char)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  3334.                                                    SUB164(auVar65 >> 0x20,0) +
  3335.                                                    SUB164(auVar69 >> 0x20,0) +
  3336.                                                    SUB164(auVar65 >> 0x40,0) +
  3337.                                                    SUB164(auVar69 >> 0x40,0) + 0x200 +
  3338.                                                    SUB164(auVar65 >> 0x60,0) +
  3339.                                                    SUB164(auVar69 >> 0x60,0) >> 10));
  3340.             if (sVar12 != 0) {
  3341.               uVar52 = CONCAT22(sVar12,sVar12);
  3342.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  3343.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3344.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3345.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3346.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3347.                                                                      CONCAT26(-SUB162(auVar53 >>
  3348.                                                                                       0x30,0),
  3349.                                                                               CONCAT24(-SUB162(
  3350.                                                   auVar53 >> 0x20,0),
  3351.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3352.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3353.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3354.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  3355.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  3356.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  3357.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  3358.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  3359.                                           uVar52));
  3360.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  3361.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  3362.               *puVar16 = uVar52;
  3363.               puVar16[1] = (int)((ulonglong)_uVar52 >> 0x20);
  3364.               puVar16[2] = SUB124(_uVar52 >> 0x40,0);
  3365.               puVar16[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  3366.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  3367.               ;
  3368.                     /* WARNING: Load size is inaccurate */
  3369.               auVar53 = *(undefined *)(param_1 + 0x11430);
  3370.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3371.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3372.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3373.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3374.                                                                      CONCAT26(-SUB162(auVar53 >>
  3375.                                                                                       0x30,0),
  3376.                                                                               CONCAT24(-SUB162(
  3377.                                                   auVar53 >> 0x20,0),
  3378.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3379.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3380.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3381.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  3382.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar54 >> 0x10,0),
  3383.                                 SUB162(auVar55,0) + SUB162(auVar54,0));
  3384.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar54 >> 0x30,0),
  3385.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar54 >> 0x20,0),
  3386.                                           uVar52));
  3387.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  3388.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  3389.               puVar16[4] = uVar52;
  3390.               puVar16[5] = (int)((ulonglong)_uVar52 >> 0x20);
  3391.               puVar16[6] = SUB124(_uVar52 >> 0x40,0);
  3392.               puVar16[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  3393.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  3394.               ;
  3395.                     /* WARNING: Load size is inaccurate */
  3396.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x11420) >> 0x10,0);
  3397.                     /* WARNING: Load size is inaccurate */
  3398.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x11430) >> 0x10,0);
  3399.             }
  3400.             uVar5 = *(undefined2 *)(param_1 + 0x11430);
  3401.             pcVar44 = pcVar44 + 1;
  3402.             *(undefined4 *)(param_1 + 0x11430) = SUB144(auVar70,0);
  3403.             *(undefined4 *)(param_1 + 0x11434) = SUB144(auVar70 >> 0x20,0);
  3404.             *(undefined4 *)(param_1 + 0x11438) = SUB144(auVar70 >> 0x40,0);
  3405.             *(uint *)(param_1 + 0x1143c) = SUB144(auVar70 >> 0x60,0);
  3406.             *(short *)(param_1 + 0x1143c) = *(short *)(param_1 + 0x1143c) - uVar40;
  3407.             *(undefined4 *)(param_1 + 0x11420) = SUB144(auVar58,0);
  3408.             *(undefined4 *)(param_1 + 0x11424) = SUB144(auVar58 >> 0x20,0);
  3409.             *(undefined4 *)(param_1 + 0x11428) = SUB144(auVar58 >> 0x40,0);
  3410.             *(uint *)(param_1 + 0x1142c) = SUB144(auVar58 >> 0x60,0);
  3411.             *(ushort *)(param_1 + 0x1143e) = uVar40;
  3412.             *(undefined2 *)(param_1 + 0x1142e) = uVar5;
  3413.           } while (pcVar33 != pcVar44);
  3414.         }
  3415.         auVar53 = (undefined  [16])0x0;
  3416.         auVar54 = (undefined  [16])0x1000100010001;
  3417.         auVar55 = (undefined  [16])0x1000100010001;
  3418.         *(int *)(param_1 + 0x117e0) = uStack256 + 0x20;
  3419.         pcVar44 = pcVar33;
  3420.         do {
  3421.           uVar45 = SUB84(puVar15,0);
  3422.           lVar14 = (longlong)*(int *)(param_1 + 0x117d0);
  3423.           uVar11 = (ulonglong)*(uint *)(param_1 + 0x117c0 + lVar14 * 0x310);
  3424.           uVar13 = *(uint *)(param_1 + 0x40);
  3425.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  3426.           *(uint *)(param_1 + 0x3c) = uVar13;
  3427.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  3428.           if (uVar13 < 0x10000) {
  3429.             FUN_00417f00(plVar1);
  3430.             uVar13 = *(uint *)(param_1 + 0x3c);
  3431.           }
  3432.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  3433.           lVar21 = uVar11 * 0x30 + lVar14 * 0x310 + param_1;
  3434.                     /* WARNING: Load size is inaccurate */
  3435.           auVar65 = *(undefined *)(lVar21 + 0x114c0);
  3436.                     /* WARNING: Load size is inaccurate */
  3437.           auVar69 = *(undefined *)(lVar21 + 0x114d0);
  3438.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  3439.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  3440.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  3441.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  3442.                                                                     sVar12,CONCAT26(SUB162(auVar65
  3443.                                                   >> 0x30,0) - sVar12,
  3444.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  3445.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  3446.                                                                     sVar12,SUB162(auVar65,0) -
  3447.                                                                            sVar12))))))),
  3448.                              CONCAT214(SUB162(auVar69 >> 0x70,0) - sVar12,
  3449.                                        CONCAT212(SUB162(auVar69 >> 0x60,0) - sVar12,
  3450.                                                  CONCAT210(SUB162(auVar69 >> 0x50,0) - sVar12,
  3451.                                                            CONCAT28(SUB162(auVar69 >> 0x40,0) -
  3452.                                                                     sVar12,CONCAT26(SUB162(auVar69
  3453.                                                   >> 0x30,0) - sVar12,
  3454.                                                   CONCAT24(SUB162(auVar69 >> 0x20,0) - sVar12,
  3455.                                                            CONCAT22(SUB162(auVar69 >> 0x10,0) -
  3456.                                                                     sVar12,SUB162(auVar69,0) -
  3457.                                                                            sVar12))))))));
  3458.           uVar41 = pmovmskb(uVar45,auVar65);
  3459.                     /* WARNING: Load size is inaccurate */
  3460.           auVar65 = *(undefined *)(lVar21 + 0x114e0);
  3461.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  3462.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  3463.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  3464.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  3465.                                                                     sVar12,CONCAT26(SUB162(auVar65
  3466.                                                   >> 0x30,0) - sVar12,
  3467.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  3468.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  3469.                                                                     sVar12,SUB162(auVar65,0) -
  3470.                                                                            sVar12))))))),auVar53);
  3471.           iVar8 = pmovmskb((int)(lVar14 * 0x310),auVar65);
  3472.           uVar41 = iVar8 << 0x10 | uVar41;
  3473.           uVar43 = 0x1f;
  3474.           if (uVar41 != 0) {
  3475.             while (uVar41 >> uVar43 == 0) {
  3476.               uVar43 = uVar43 - 1;
  3477.             }
  3478.           }
  3479.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  3480.           uVar25 = (ulonglong)uVar41;
  3481.           lVar21 = lVar14 * 0x188 + uVar11 * 0x18;
  3482.           uVar50 = (uint)*(ushort *)(param_1 + 0x113d0 + (lVar21 + 0x78 + uVar25) * 2);
  3483.           *(int *)(param_1 + 0x3c) =
  3484.                (uVar13 - uVar50 & 0x3fff) +
  3485.                (uVar13 >> 0xe) *
  3486.                (*(ushort *)
  3487.                  (param_1 + 0x113d0 + (lVar21 + 0x78 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) * 2)-
  3488.                uVar50);
  3489.           FUN_0041e3c0((undefined4 *)(lVar14 * 0x310 + uVar11 * 0x30 + param_1 + 0x114c0),uVar41);
  3490.           iVar8 = 0;
  3491.           if (*(byte *)(DAT_004315c0 + uVar25) != 0) {
  3492.             uVar11 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_004315c0 + uVar25));
  3493.             iVar8 = (int)uVar11;
  3494.           }
  3495.           uVar43 = (iVar8 + (&DAT_004315f8)[uVar25]) - DAT_00431700;
  3496.           lVar21 = lVar14 * 0x310 + param_1;
  3497.           uVar13 = *(uint *)(lVar21 + 0x117c0);
  3498.           if (uVar13 != 0) {
  3499.             uVar11 = FUN_00417f40(plVar1,uVar13);
  3500.             uVar43 = uVar43 << ((byte)*(undefined4 *)(lVar21 + 0x117c0) & 0x1f) | (uint)uVar11;
  3501.           }
  3502.           lVar14 = lVar14 * 0x310 + param_1;
  3503.           iVar8 = *(int *)(lVar14 + 0x117c0);
  3504.           uVar13 = (*(uint *)(lVar14 + 0x117c4) - (*(uint *)(lVar14 + 0x117c4) >> 3)) + uVar43;
  3505.           *(uint *)(lVar14 + 0x117c4) = uVar13;
  3506.           uVar13 = uVar13 >> ((byte)iVar8 & 0x1f);
  3507.           if (uVar13 < 0x11) {
  3508.             if (uVar13 < 8) {
  3509.               *(int *)(lVar14 + 0x117c0) = iVar8 - (iVar8 + 0x1fU >> 5);
  3510.             }
  3511.           }
  3512.           else {
  3513.             *(int *)(lVar14 + 0x117c0) = iVar8 + 1;
  3514.           }
  3515.           puVar15 = *(undefined4 **)(param_1 + 0x11460);
  3516.                     /* WARNING: Load size is inaccurate */
  3517.           auVar70 = SUB1614(*(undefined *)(param_1 + 0x11430) >> 0x10,0);
  3518.           bVar49 = (byte)(uVar43 >> 1);
  3519.                     /* WARNING: Load size is inaccurate */
  3520.           auVar65 = *(undefined *)(param_1 + 0x11420);
  3521.           auVar58 = SUB1614(auVar65 >> 0x10,0);
  3522.           bVar4 = ~bVar49;
  3523.           if ((uVar43 & 1) == 0) {
  3524.             bVar4 = bVar49;
  3525.           }
  3526.                     /* WARNING: Load size is inaccurate */
  3527.           auVar69 = *(undefined *)(puVar15 + 4);
  3528.                     /* WARNING: Load size is inaccurate */
  3529.           auVar67 = *(undefined *)puVar15;
  3530.           auVar56 = pmaddwd(*(undefined *)(param_1 + 0x11430),auVar69);
  3531.           auVar66 = pmaddwd(auVar65,auVar67);
  3532.           cVar42 = (char)(SUB164(auVar56,0) + SUB164(auVar66,0) +
  3533.                           SUB164(auVar56 >> 0x20,0) + SUB164(auVar66 >> 0x20,0) +
  3534.                           SUB164(auVar56 >> 0x40,0) + SUB164(auVar66 >> 0x40,0) + 0x200 +
  3535.                           SUB164(auVar56 >> 0x60,0) + SUB164(auVar66 >> 0x60,0) >> 10) + bVar4;
  3536.           sVar12 = (short)(char)bVar4;
  3537.           sVar17 = SUB162(auVar53,0);
  3538.           sVar64 = SUB162(auVar53 >> 0x70,0);
  3539.           sVar57 = SUB162(auVar53 >> 0x10,0);
  3540.           sVar59 = SUB162(auVar53 >> 0x20,0);
  3541.           sVar60 = SUB162(auVar53 >> 0x30,0);
  3542.           sVar61 = SUB162(auVar53 >> 0x40,0);
  3543.           sVar62 = SUB162(auVar53 >> 0x50,0);
  3544.           sVar63 = SUB162(auVar53 >> 0x60,0);
  3545.           if (sVar12 != 0) {
  3546.             uVar52 = CONCAT22(sVar12,sVar12);
  3547.             auVar56 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  3548.             auVar66 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  3549.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  3550.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  3551.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  3552.                                                                                   ),
  3553.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  3554.                                                   >> 0x30,0),
  3555.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  3556.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  3557.                                                                                     0),
  3558.                                                                     sVar17 -SUB162(auVar65,0)))))))
  3559.                                      ) | auVar65,0xf);
  3560.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  3561.             auVar66 = (auVar65 | auVar54) & auVar66;
  3562.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar66 >> 0x10,0),
  3563.                               SUB162(auVar67,0) + SUB162(auVar66,0));
  3564.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar66 >> 0x30,0),
  3565.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar66 >>0x20,0),uVar52
  3566.                                        ));
  3567.             _uVar52 = CONCAT210(SUB162(auVar67 >> 0x50,0),
  3568.                                 CONCAT28(SUB162(auVar67 >> 0x40,0),_uVar52));
  3569.             *puVar15 = uVar52;
  3570.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  3571.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  3572.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar67 >> 0x70,0),
  3573.                                           CONCAT212(SUB162(auVar67 >> 0x60,0),_uVar52)) >> 0x60,0);
  3574.                     /* WARNING: Load size is inaccurate */
  3575.             auVar65 = *(undefined *)(param_1 + 0x11430);
  3576.             auVar67 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  3577.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  3578.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  3579.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  3580.                                                                                   ),
  3581.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  3582.                                                   >> 0x30,0),
  3583.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  3584.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  3585.                                                                                     0),
  3586.                                                                     sVar17 -SUB162(auVar65,0)))))))
  3587.                                      ) | auVar65,0xf);
  3588.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  3589.             auVar67 = (auVar65 | auVar54) & auVar67;
  3590.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + SUB162(auVar67 >> 0x10,0),
  3591.                               SUB162(auVar69,0) + SUB162(auVar67,0));
  3592.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + SUB162(auVar67 >> 0x30,0),
  3593.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + SUB162(auVar67 >>0x20,0),uVar52
  3594.                                        ));
  3595.             _uVar52 = CONCAT210(SUB162(auVar69 >> 0x50,0),
  3596.                                 CONCAT28(SUB162(auVar69 >> 0x40,0),_uVar52));
  3597.             puVar15[4] = uVar52;
  3598.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  3599.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  3600.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar69 >> 0x70,0),
  3601.                                           CONCAT212(SUB162(auVar69 >> 0x60,0),_uVar52)) >> 0x60,0);
  3602.                     /* WARNING: Load size is inaccurate */
  3603.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x11420) >> 0x10,0);
  3604.                     /* WARNING: Load size is inaccurate */
  3605.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x11430) >> 0x10,0);
  3606.           }
  3607.           uVar5 = *(undefined2 *)(param_1 + 0x11430);
  3608.           sVar12 = (short)cVar42;
  3609.           puVar15 = *(undefined4 **)(param_1 + 0x11410);
  3610.           *(undefined4 *)(param_1 + 0x11430) = SUB144(auVar70,0);
  3611.           *(undefined4 *)(param_1 + 0x11434) = SUB144(auVar70 >> 0x20,0);
  3612.           *(undefined4 *)(param_1 + 0x11438) = SUB144(auVar70 >> 0x40,0);
  3613.           *(uint *)(param_1 + 0x1143c) = SUB144(auVar70 >> 0x60,0);
  3614.                     /* WARNING: Load size is inaccurate */
  3615.           auVar70 = SUB1614(*(undefined *)(param_1 + 0x113e0) >> 0x10,0);
  3616.           *(undefined4 *)(param_1 + 0x11420) = SUB144(auVar58,0);
  3617.           *(undefined4 *)(param_1 + 0x11424) = SUB144(auVar58 >> 0x20,0);
  3618.           *(undefined4 *)(param_1 + 0x11428) = SUB144(auVar58 >> 0x40,0);
  3619.           *(uint *)(param_1 + 0x1142c) = SUB144(auVar58 >> 0x60,0);
  3620.                     /* WARNING: Load size is inaccurate */
  3621.           auVar65 = *(undefined *)(param_1 + 0x113d0);
  3622.           auVar58 = SUB1614(auVar65 >> 0x10,0);
  3623.           *(short *)(param_1 + 0x1143e) = sVar12;
  3624.           *(undefined2 *)(param_1 + 0x1142e) = uVar5;
  3625.           *(short *)(param_1 + 0x1143c) = *(short *)(param_1 + 0x1143c) - sVar12;
  3626.                     /* WARNING: Load size is inaccurate */
  3627.           auVar69 = *(undefined *)(puVar15 + 4);
  3628.                     /* WARNING: Load size is inaccurate */
  3629.           auVar67 = *(undefined *)puVar15;
  3630.           auVar56 = pmaddwd(*(undefined *)(param_1 + 0x113e0),auVar69);
  3631.           auVar66 = pmaddwd(auVar65,auVar67);
  3632.           cVar42 = (char)(SUB164(auVar56,0) + SUB164(auVar66,0) +
  3633.                           SUB164(auVar56 >> 0x20,0) + SUB164(auVar66 >> 0x20,0) +
  3634.                           SUB164(auVar56 >> 0x40,0) + SUB164(auVar66 >> 0x40,0) + 0x800 +
  3635.                           SUB164(auVar56 >> 0x60,0) + SUB164(auVar66 >> 0x60,0) >> 0xc) + cVar42;
  3636.           if (sVar12 != 0) {
  3637.             uVar52 = CONCAT22(sVar12,sVar12);
  3638.             auVar66 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  3639.             auVar56 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  3640.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  3641.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  3642.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  3643.                                                                                   ),
  3644.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  3645.                                                   >> 0x30,0),
  3646.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  3647.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  3648.                                                                                     0),
  3649.                                                                     sVar17 -SUB162(auVar65,0)))))))
  3650.                                      ) | auVar65,0xf);
  3651.             auVar65 = psraw(auVar65 ^ auVar66,0xf);
  3652.             auVar56 = (auVar65 | auVar55) & auVar56;
  3653.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar56 >> 0x10,0),
  3654.                               SUB162(auVar67,0) + SUB162(auVar56,0));
  3655.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar56 >> 0x30,0),
  3656.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar56 >>0x20,0),uVar52
  3657.                                        ));
  3658.             _uVar52 = CONCAT210(SUB162(auVar67 >> 0x50,0),
  3659.                                 CONCAT28(SUB162(auVar67 >> 0x40,0),_uVar52));
  3660.             *puVar15 = uVar52;
  3661.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  3662.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  3663.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar67 >> 0x70,0),
  3664.                                           CONCAT212(SUB162(auVar67 >> 0x60,0),_uVar52)) >> 0x60,0);
  3665.                     /* WARNING: Load size is inaccurate */
  3666.             auVar65 = *(undefined *)(param_1 + 0x113e0);
  3667.             auVar67 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  3668.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  3669.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  3670.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  3671.                                                                                   ),
  3672.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  3673.                                                   >> 0x30,0),
  3674.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  3675.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  3676.                                                                                     0),
  3677.                                                                     sVar17 -SUB162(auVar65,0)))))))
  3678.                                      ) | auVar65,0xf);
  3679.             auVar65 = psraw(auVar65 ^ auVar66,0xf);
  3680.             auVar67 = (auVar65 | auVar55) & auVar67;
  3681.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar69 >> 0x10,0),
  3682.                               SUB162(auVar67,0) + SUB162(auVar69,0));
  3683.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar69 >> 0x30,0),
  3684.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar69 >>0x20,0),uVar52
  3685.                                        ));
  3686.             _uVar52 = CONCAT210(SUB162(auVar69 >> 0x50,0),
  3687.                                 CONCAT28(SUB162(auVar69 >> 0x40,0),_uVar52));
  3688.             puVar15[4] = uVar52;
  3689.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  3690.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  3691.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar69 >> 0x70,0),
  3692.                                           CONCAT212(SUB162(auVar69 >> 0x60,0),_uVar52)) >> 0x60,0);
  3693.                     /* WARNING: Load size is inaccurate */
  3694.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x113d0) >> 0x10,0);
  3695.                     /* WARNING: Load size is inaccurate */
  3696.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x113e0) >> 0x10,0);
  3697.           }
  3698.           uVar5 = *(undefined2 *)(param_1 + 0x113e0);
  3699.           pcVar28 = pcVar44 + 1;
  3700.           *(undefined4 *)(param_1 + 0x113d0) = SUB144(auVar58,0);
  3701.           *(undefined4 *)(param_1 + 0x113d4) = SUB144(auVar58 >> 0x20,0);
  3702.           *(undefined4 *)(param_1 + 0x113d8) = SUB144(auVar58 >> 0x40,0);
  3703.           *(uint *)(param_1 + 0x113dc) = SUB144(auVar58 >> 0x60,0);
  3704.           *(undefined4 *)(param_1 + 0x113e0) = SUB144(auVar70,0);
  3705.           *(undefined4 *)(param_1 + 0x113e4) = SUB144(auVar70 >> 0x20,0);
  3706.           *(undefined4 *)(param_1 + 0x113e8) = SUB144(auVar70 >> 0x40,0);
  3707.           *(uint *)(param_1 + 0x113ec) = SUB144(auVar70 >> 0x60,0);
  3708.           *(undefined2 *)(param_1 + 0x113de) = uVar5;
  3709.           *(short *)(param_1 + 0x113ec) = *(short *)(param_1 + 0x113ec) - (short)cVar42;
  3710.           *(short *)(param_1 + 0x113ee) = (short)cVar42;
  3711.           *pcVar44 = cVar42 + -0x80;
  3712.           pcVar44 = pcVar28;
  3713.         } while (pcVar33 + 0x20 != pcVar28);
  3714.         goto LAB_00407f20;
  3715.       case -0x14:
  3716.         lVar14 = param_1 + 0x11fa0;
  3717.         pcVar33 = (char *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  3718.                           *(longlong *)(param_1 + 0x58));
  3719.         if (*(uint *)(param_1 + 0x12750) == uStack256) {
  3720.           uVar13 = *(uint *)(param_1 + 0x12740);
  3721.         }
  3722.         else {
  3723.           pcVar44 = pcVar33 + -0x10;
  3724.           do {
  3725.             puVar15 = *(undefined4 **)(param_1 + 0x12000);
  3726.                     /* WARNING: Load size is inaccurate */
  3727.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x11fb0) >> 0x10,0);
  3728.                     /* WARNING: Load size is inaccurate */
  3729.             auVar53 = *(undefined *)(param_1 + 0x11fa0);
  3730.             auVar58 = SUB1614(auVar53 >> 0x10,0);
  3731.                     /* WARNING: Load size is inaccurate */
  3732.             auVar54 = *(undefined *)(puVar15 + 4);
  3733.                     /* WARNING: Load size is inaccurate */
  3734.             auVar55 = *(undefined *)puVar15;
  3735.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x11fb0),auVar54);
  3736.             auVar69 = pmaddwd(auVar53,auVar55);
  3737.             cVar42 = *pcVar44 + -0x80;
  3738.             cVar37 = cVar42 - (char)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  3739.                                      SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  3740.                                      SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x800+
  3741.                                      SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >> 0xc);
  3742.             sVar12 = (short)cVar37;
  3743.             if (sVar12 != 0) {
  3744.               uVar52 = CONCAT22(sVar12,sVar12);
  3745.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  3746.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3747.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3748.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3749.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3750.                                                                      CONCAT26(-SUB162(auVar53 >>
  3751.                                                                                       0x30,0),
  3752.                                                                               CONCAT24(-SUB162(
  3753.                                                   auVar53 >> 0x20,0),
  3754.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3755.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3756.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3757.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  3758.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  3759.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  3760.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  3761.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  3762.                                           uVar52));
  3763.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  3764.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  3765.               *puVar15 = uVar52;
  3766.               puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  3767.               puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  3768.               puVar15[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  3769.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  3770.               ;
  3771.                     /* WARNING: Load size is inaccurate */
  3772.               auVar53 = *(undefined *)(param_1 + 0x11fb0);
  3773.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3774.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3775.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3776.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3777.                                                                      CONCAT26(-SUB162(auVar53 >>
  3778.                                                                                       0x30,0),
  3779.                                                                               CONCAT24(-SUB162(
  3780.                                                   auVar53 >> 0x20,0),
  3781.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3782.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3783.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3784.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  3785.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar54 >> 0x10,0),
  3786.                                 SUB162(auVar55,0) + SUB162(auVar54,0));
  3787.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar54 >> 0x30,0),
  3788.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar54 >> 0x20,0),
  3789.                                           uVar52));
  3790.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  3791.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  3792.               puVar15[4] = uVar52;
  3793.               puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  3794.               puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  3795.               puVar15[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  3796.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  3797.               ;
  3798.               puVar15 = *(undefined4 **)(param_1 + 0x12000);
  3799.                     /* WARNING: Load size is inaccurate */
  3800.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x11fa0) >> 0x10,0);
  3801.                     /* WARNING: Load size is inaccurate */
  3802.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x11fb0) >> 0x10,0);
  3803.             }
  3804.             uVar5 = *(undefined2 *)(param_1 + 0x11fb0);
  3805.             *(undefined4 *)(param_1 + 0x11fb0) = SUB144(auVar70,0);
  3806.             *(undefined4 *)(param_1 + 0x11fb4) = SUB144(auVar70 >> 0x20,0);
  3807.             *(undefined4 *)(param_1 + 0x11fb8) = SUB144(auVar70 >> 0x40,0);
  3808.             *(uint *)(param_1 + 0x11fbc) = SUB144(auVar70 >> 0x60,0);
  3809.                     /* WARNING: Load size is inaccurate */
  3810.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x12020) >> 0x10,0);
  3811.             *(short *)(param_1 + 0x11fba) = *(short *)(param_1 + 0x11fba) - (short)cVar42;
  3812.             *(short *)(param_1 + 0x11fbe) = (short)cVar42;
  3813.             puVar16 = *(undefined4 **)(param_1 + 0x12070);
  3814.             *(undefined4 *)(param_1 + 0x11fa0) = SUB144(auVar58,0);
  3815.             *(undefined4 *)(param_1 + 0x11fa4) = SUB144(auVar58 >> 0x20,0);
  3816.             *(undefined4 *)(param_1 + 0x11fa8) = SUB144(auVar58 >> 0x40,0);
  3817.             *(uint *)(param_1 + 0x11fac) = SUB144(auVar58 >> 0x60,0);
  3818.                     /* WARNING: Load size is inaccurate */
  3819.             auVar53 = *(undefined *)(param_1 + 0x12010);
  3820.             auVar58 = SUB1614(auVar53 >> 0x10,0);
  3821.             *(undefined2 *)(param_1 + 0x11fae) = uVar5;
  3822.             *(longlong *)(param_1 + 0x12000) =
  3823.                  ((ulonglong)(puVar15 == (undefined4 *)(param_1 + 0x11fc0)) + 1) * 0x20 + lVar14;
  3824.                     /* WARNING: Load size is inaccurate */
  3825.             auVar54 = *(undefined *)(puVar16 + 4);
  3826.                     /* WARNING: Load size is inaccurate */
  3827.             auVar55 = *(undefined *)puVar16;
  3828.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x12020),auVar54);
  3829.             auVar69 = pmaddwd(auVar53,auVar55);
  3830.             sVar17 = (short)(char)(cVar37 - (char)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  3831.                                                    SUB164(auVar65 >> 0x20,0) +
  3832.                                                    SUB164(auVar69 >> 0x20,0) +
  3833.                                                    SUB164(auVar65 >> 0x40,0) +
  3834.                                                    SUB164(auVar69 >> 0x40,0) + 0x200 +
  3835.                                                    SUB164(auVar65 >> 0x60,0) +
  3836.                                                    SUB164(auVar69 >> 0x60,0) >> 10));
  3837.             if (sVar17 != 0) {
  3838.               uVar52 = CONCAT22(sVar17,sVar17);
  3839.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  3840.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3841.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3842.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3843.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3844.                                                                      CONCAT26(-SUB162(auVar53 >>
  3845.                                                                                       0x30,0),
  3846.                                                                               CONCAT24(-SUB162(
  3847.                                                   auVar53 >> 0x20,0),
  3848.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3849.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3850.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3851.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  3852.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  3853.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  3854.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  3855.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  3856.                                           uVar52));
  3857.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  3858.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  3859.               *puVar16 = uVar52;
  3860.               puVar16[1] = (int)((ulonglong)_uVar52 >> 0x20);
  3861.               puVar16[2] = SUB124(_uVar52 >> 0x40,0);
  3862.               puVar16[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  3863.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  3864.               ;
  3865.                     /* WARNING: Load size is inaccurate */
  3866.               auVar53 = *(undefined *)(param_1 + 0x12020);
  3867.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  3868.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  3869.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  3870.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  3871.                                                                      CONCAT26(-SUB162(auVar53 >>
  3872.                                                                                       0x30,0),
  3873.                                                                               CONCAT24(-SUB162(
  3874.                                                   auVar53 >> 0x20,0),
  3875.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  3876.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  3877.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  3878.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  3879.               uVar52 = CONCAT22(SUB162(auVar54 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  3880.                                 SUB162(auVar54,0) + SUB162(auVar55,0));
  3881.               _uVar52 = CONCAT26(SUB162(auVar54 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  3882.                                  CONCAT24(SUB162(auVar54 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  3883.                                           uVar52));
  3884.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  3885.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  3886.               puVar16[4] = uVar52;
  3887.               puVar16[5] = (int)((ulonglong)_uVar52 >> 0x20);
  3888.               puVar16[6] = SUB124(_uVar52 >> 0x40,0);
  3889.               puVar16[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  3890.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  3891.               ;
  3892.               puVar16 = *(undefined4 **)(param_1 + 0x12070);
  3893.                     /* WARNING: Load size is inaccurate */
  3894.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x12010) >> 0x10,0);
  3895.                     /* WARNING: Load size is inaccurate */
  3896.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x12020) >> 0x10,0);
  3897.             }
  3898.             uVar5 = *(undefined2 *)(param_1 + 0x12020);
  3899.             *(undefined4 *)(param_1 + 0x12010) = SUB144(auVar58,0);
  3900.             *(undefined4 *)(param_1 + 0x12014) = SUB144(auVar58 >> 0x20,0);
  3901.             *(undefined4 *)(param_1 + 0x12018) = SUB144(auVar58 >> 0x40,0);
  3902.             *(uint *)(param_1 + 0x1201c) = SUB144(auVar58 >> 0x60,0);
  3903.             *(undefined4 *)(param_1 + 0x12020) = SUB144(auVar70,0);
  3904.             *(undefined4 *)(param_1 + 0x12024) = SUB144(auVar70 >> 0x20,0);
  3905.             *(undefined4 *)(param_1 + 0x12028) = SUB144(auVar70 >> 0x40,0);
  3906.             *(uint *)(param_1 + 0x1202c) = SUB144(auVar70 >> 0x60,0);
  3907.             *(short *)(param_1 + 0x1202a) = *(short *)(param_1 + 0x1202a) - sVar12;
  3908.             *(short *)(param_1 + 0x1202e) = sVar12;
  3909.             *(undefined2 *)(param_1 + 0x1201e) = uVar5;
  3910.             pcVar44 = pcVar44 + 1;
  3911.             uVar13 = *(uint *)(param_1 + 0x12740) ^ 1;
  3912.             *(uint *)(param_1 + 0x12740) = uVar13;
  3913.             *(longlong *)(param_1 + 0x12070) =
  3914.                  ((ulonglong)(puVar16 == (undefined4 *)(param_1 + 0x12030)) + 1) * 0x20 +
  3915.                  param_1 + 0x12010;
  3916.           } while (pcVar33 != pcVar44);
  3917.         }
  3918.         auVar53 = (undefined  [16])0x0;
  3919.         auVar54 = (undefined  [16])0x1000100010001;
  3920.         *(int *)(param_1 + 0x12750) = uStack256 + 0x20;
  3921.         auVar55 = (undefined  [16])0x1000100010001;
  3922.         pcVar44 = pcVar33;
  3923.         while( true ) {
  3924.           *(uint *)(param_1 + 0x12740) = uVar13 ^ 1;
  3925.           lVar21 = (longlong)(int)(uVar13 ^ 1);
  3926.           uVar11 = (ulonglong)*(uint *)(param_1 + 0x12420 + lVar21 * 0x310);
  3927.           uVar13 = *(uint *)(param_1 + 0x40);
  3928.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  3929.           *(uint *)(param_1 + 0x3c) = uVar13;
  3930.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  3931.           if (uVar13 < 0x10000) {
  3932.             FUN_00417f00(plVar1);
  3933.             uVar13 = *(uint *)(param_1 + 0x3c);
  3934.           }
  3935.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  3936.           lVar23 = uVar11 * 0x30 + lVar21 * 0x310 + param_1;
  3937.                     /* WARNING: Load size is inaccurate */
  3938.           auVar65 = *(undefined *)(lVar23 + 0x12120);
  3939.                     /* WARNING: Load size is inaccurate */
  3940.           auVar69 = *(undefined *)(lVar23 + 0x12130);
  3941.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  3942.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  3943.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  3944.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  3945.                                                                     sVar12,CONCAT26(SUB162(auVar65
  3946.                                                   >> 0x30,0) - sVar12,
  3947.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  3948.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  3949.                                                                     sVar12,SUB162(auVar65,0) -
  3950.                                                                            sVar12))))))),
  3951.                              CONCAT214(SUB162(auVar69 >> 0x70,0) - sVar12,
  3952.                                        CONCAT212(SUB162(auVar69 >> 0x60,0) - sVar12,
  3953.                                                  CONCAT210(SUB162(auVar69 >> 0x50,0) - sVar12,
  3954.                                                            CONCAT28(SUB162(auVar69 >> 0x40,0) -
  3955.                                                                     sVar12,CONCAT26(SUB162(auVar69
  3956.                                                   >> 0x30,0) - sVar12,
  3957.                                                   CONCAT24(SUB162(auVar69 >> 0x20,0) - sVar12,
  3958.                                                            CONCAT22(SUB162(auVar69 >> 0x10,0) -
  3959.                                                                     sVar12,SUB162(auVar69,0) -
  3960.                                                                            sVar12))))))));
  3961.           uVar41 = pmovmskb((int)(lVar21 * 0x310),auVar65);
  3962.                     /* WARNING: Load size is inaccurate */
  3963.           auVar65 = *(undefined *)(lVar23 + 0x12140);
  3964.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  3965.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  3966.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  3967.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  3968.                                                                     sVar12,CONCAT26(SUB162(auVar65
  3969.                                                   >> 0x30,0) - sVar12,
  3970.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  3971.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  3972.                                                                     sVar12,SUB162(auVar65,0) -
  3973.                                                                            sVar12))))))),auVar53);
  3974.           iVar8 = pmovmskb((int)lVar23,auVar65);
  3975.           uVar41 = iVar8 << 0x10 | uVar41;
  3976.           uVar43 = 0x1f;
  3977.           if (uVar41 != 0) {
  3978.             while (uVar41 >> uVar43 == 0) {
  3979.               uVar43 = uVar43 - 1;
  3980.             }
  3981.           }
  3982.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  3983.           uVar25 = (ulonglong)uVar41;
  3984.           lVar23 = lVar21 * 0x188 + uVar11 * 0x18;
  3985.           uVar50 = (uint)*(ushort *)(param_1 + 0x11fa0 + (lVar23 + 0xc0 + uVar25) * 2);
  3986.           *(int *)(param_1 + 0x3c) =
  3987.                (*(ushort *)
  3988.                  (param_1 + 0x11fa0 + (lVar23 + 0xc0 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) * 2)-
  3989.                uVar50) * (uVar13 >> 0xe) + (uVar13 - uVar50 & 0x3fff);
  3990.           FUN_0041e3c0((undefined4 *)(lVar21 * 0x310 + 0x180 + uVar11 * 0x30 + lVar14),uVar41);
  3991.           iVar8 = 0;
  3992.           if (*(byte *)(DAT_004315c0 + uVar25) != 0) {
  3993.             uVar11 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_004315c0 + uVar25));
  3994.             iVar8 = (int)uVar11;
  3995.           }
  3996.           uVar43 = (iVar8 + (&DAT_004315f8)[uVar25]) - DAT_00431700;
  3997.           lVar23 = lVar21 * 0x310 + param_1;
  3998.           uVar13 = *(uint *)(lVar23 + 0x12420);
  3999.           if (uVar13 != 0) {
  4000.             uVar11 = FUN_00417f40(plVar1,uVar13);
  4001.             uVar43 = uVar43 << ((byte)*(undefined4 *)(lVar23 + 0x12420) & 0x1f) | (uint)uVar11;
  4002.           }
  4003.           lVar21 = lVar21 * 0x310 + param_1;
  4004.           iVar8 = *(int *)(lVar21 + 0x12420);
  4005.           uVar13 = (*(uint *)(lVar21 + 0x12424) - (*(uint *)(lVar21 + 0x12424) >> 3)) + uVar43;
  4006.           *(uint *)(lVar21 + 0x12424) = uVar13;
  4007.           uVar13 = uVar13 >> ((byte)iVar8 & 0x1f);
  4008.           if (uVar13 < 0x11) {
  4009.             if (uVar13 < 8) {
  4010.               *(int *)(lVar21 + 0x12420) = iVar8 - (iVar8 + 0x1fU >> 5);
  4011.             }
  4012.           }
  4013.           else {
  4014.             *(int *)(lVar21 + 0x12420) = iVar8 + 1;
  4015.           }
  4016.           puVar15 = *(undefined4 **)(param_1 + 0x12070);
  4017.                     /* WARNING: Load size is inaccurate */
  4018.           auVar70 = SUB1614(*(undefined *)(param_1 + 0x12020) >> 0x10,0);
  4019.           bVar49 = (byte)(uVar43 >> 1);
  4020.                     /* WARNING: Load size is inaccurate */
  4021.           auVar65 = *(undefined *)(param_1 + 0x12010);
  4022.           auVar58 = SUB1614(auVar65 >> 0x10,0);
  4023.           bVar4 = ~bVar49;
  4024.           if ((uVar43 & 1) == 0) {
  4025.             bVar4 = bVar49;
  4026.           }
  4027.                     /* WARNING: Load size is inaccurate */
  4028.           auVar69 = *(undefined *)(puVar15 + 4);
  4029.                     /* WARNING: Load size is inaccurate */
  4030.           auVar67 = *(undefined *)puVar15;
  4031.           auVar56 = pmaddwd(*(undefined *)(param_1 + 0x12020),auVar69);
  4032.           auVar66 = pmaddwd(auVar65,auVar67);
  4033.           cVar42 = (char)(SUB164(auVar56,0) + SUB164(auVar66,0) +
  4034.                           SUB164(auVar56 >> 0x20,0) + SUB164(auVar66 >> 0x20,0) +
  4035.                           SUB164(auVar56 >> 0x40,0) + SUB164(auVar66 >> 0x40,0) + 0x200 +
  4036.                           SUB164(auVar56 >> 0x60,0) + SUB164(auVar66 >> 0x60,0) >> 10) + bVar4;
  4037.           sVar12 = (short)(char)bVar4;
  4038.           sVar17 = SUB162(auVar53,0);
  4039.           sVar64 = SUB162(auVar53 >> 0x70,0);
  4040.           sVar57 = SUB162(auVar53 >> 0x10,0);
  4041.           sVar59 = SUB162(auVar53 >> 0x20,0);
  4042.           sVar60 = SUB162(auVar53 >> 0x30,0);
  4043.           sVar61 = SUB162(auVar53 >> 0x40,0);
  4044.           sVar62 = SUB162(auVar53 >> 0x50,0);
  4045.           sVar63 = SUB162(auVar53 >> 0x60,0);
  4046.           if (sVar12 != 0) {
  4047.             uVar52 = CONCAT22(sVar12,sVar12);
  4048.             auVar56 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  4049.             auVar66 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  4050.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  4051.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  4052.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  4053.                                                                                   ),
  4054.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  4055.                                                   >> 0x30,0),
  4056.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  4057.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  4058.                                                                                     0),
  4059.                                                                     sVar17 -SUB162(auVar65,0)))))))
  4060.                                      ) | auVar65,0xf);
  4061.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4062.             auVar66 = (auVar65 | auVar54) & auVar66;
  4063.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar66 >> 0x10,0),
  4064.                               SUB162(auVar67,0) + SUB162(auVar66,0));
  4065.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar66 >> 0x30,0),
  4066.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar66 >>0x20,0),uVar52
  4067.                                        ));
  4068.             _uVar52 = CONCAT210(SUB162(auVar67 >> 0x50,0),
  4069.                                 CONCAT28(SUB162(auVar67 >> 0x40,0),_uVar52));
  4070.             *puVar15 = uVar52;
  4071.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4072.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4073.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar67 >> 0x70,0),
  4074.                                           CONCAT212(SUB162(auVar67 >> 0x60,0),_uVar52)) >> 0x60,0);
  4075.                     /* WARNING: Load size is inaccurate */
  4076.             auVar65 = *(undefined *)(param_1 + 0x12020);
  4077.             auVar67 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  4078.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  4079.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  4080.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  4081.                                                                                   ),
  4082.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  4083.                                                   >> 0x30,0),
  4084.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  4085.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  4086.                                                                                     0),
  4087.                                                                     sVar17 -SUB162(auVar65,0)))))))
  4088.                                      ) | auVar65,0xf);
  4089.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4090.             auVar67 = (auVar65 | auVar54) & auVar67;
  4091.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + SUB162(auVar67 >> 0x10,0),
  4092.                               SUB162(auVar69,0) + SUB162(auVar67,0));
  4093.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + SUB162(auVar67 >> 0x30,0),
  4094.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + SUB162(auVar67 >>0x20,0),uVar52
  4095.                                        ));
  4096.             _uVar52 = CONCAT210(SUB162(auVar69 >> 0x50,0),
  4097.                                 CONCAT28(SUB162(auVar69 >> 0x40,0),_uVar52));
  4098.             puVar15[4] = uVar52;
  4099.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4100.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4101.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar69 >> 0x70,0),
  4102.                                           CONCAT212(SUB162(auVar69 >> 0x60,0),_uVar52)) >> 0x60,0);
  4103.             puVar15 = *(undefined4 **)(param_1 + 0x12070);
  4104.                     /* WARNING: Load size is inaccurate */
  4105.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x12010) >> 0x10,0);
  4106.                     /* WARNING: Load size is inaccurate */
  4107.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x12020) >> 0x10,0);
  4108.           }
  4109.           uVar5 = *(undefined2 *)(param_1 + 0x12020);
  4110.           sVar12 = (short)cVar42;
  4111.           *(undefined4 *)(param_1 + 0x12020) = SUB144(auVar70,0);
  4112.           *(undefined4 *)(param_1 + 0x12024) = SUB144(auVar70 >> 0x20,0);
  4113.           *(undefined4 *)(param_1 + 0x12028) = SUB144(auVar70 >> 0x40,0);
  4114.           *(uint *)(param_1 + 0x1202c) = SUB144(auVar70 >> 0x60,0);
  4115.                     /* WARNING: Load size is inaccurate */
  4116.           auVar70 = SUB1614(*(undefined *)(param_1 + 0x11fb0) >> 0x10,0);
  4117.           *(short *)(param_1 + 0x1202a) = *(short *)(param_1 + 0x1202a) - sVar12;
  4118.           *(undefined4 *)(param_1 + 0x12010) = SUB144(auVar58,0);
  4119.           *(undefined4 *)(param_1 + 0x12014) = SUB144(auVar58 >> 0x20,0);
  4120.           *(undefined4 *)(param_1 + 0x12018) = SUB144(auVar58 >> 0x40,0);
  4121.           *(uint *)(param_1 + 0x1201c) = SUB144(auVar58 >> 0x60,0);
  4122.           *(short *)(param_1 + 0x1202e) = sVar12;
  4123.                     /* WARNING: Load size is inaccurate */
  4124.           auVar65 = *(undefined *)(param_1 + 0x11fa0);
  4125.           auVar58 = SUB1614(auVar65 >> 0x10,0);
  4126.           *(undefined2 *)(param_1 + 0x1201e) = uVar5;
  4127.           *(longlong *)(param_1 + 0x12070) =
  4128.                ((ulonglong)(puVar15 == (undefined4 *)(param_1 + 0x12030)) + 1) * 0x20 +
  4129.                param_1 + 0x12010;
  4130.           puVar15 = *(undefined4 **)(param_1 + 0x12000);
  4131.                     /* WARNING: Load size is inaccurate */
  4132.           auVar69 = *(undefined *)(puVar15 + 4);
  4133.                     /* WARNING: Load size is inaccurate */
  4134.           auVar67 = *(undefined *)puVar15;
  4135.           auVar56 = pmaddwd(*(undefined *)(param_1 + 0x11fb0),auVar69);
  4136.           auVar66 = pmaddwd(auVar65,auVar67);
  4137.           cVar42 = (char)(SUB164(auVar56,0) + SUB164(auVar66,0) +
  4138.                           SUB164(auVar56 >> 0x20,0) + SUB164(auVar66 >> 0x20,0) +
  4139.                           SUB164(auVar56 >> 0x40,0) + SUB164(auVar66 >> 0x40,0) + 0x800 +
  4140.                           SUB164(auVar56 >> 0x60,0) + SUB164(auVar66 >> 0x60,0) >> 0xc) + cVar42;
  4141.           if (sVar12 != 0) {
  4142.             uVar52 = CONCAT22(sVar12,sVar12);
  4143.             auVar66 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  4144.             auVar56 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  4145.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  4146.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  4147.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  4148.                                                                                   ),
  4149.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  4150.                                                   >> 0x30,0),
  4151.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  4152.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  4153.                                                                                     0),
  4154.                                                                     sVar17 -SUB162(auVar65,0)))))))
  4155.                                      ) | auVar65,0xf);
  4156.             auVar65 = psraw(auVar65 ^ auVar66,0xf);
  4157.             auVar56 = (auVar65 | auVar55) & auVar56;
  4158.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar56 >> 0x10,0),
  4159.                               SUB162(auVar67,0) + SUB162(auVar56,0));
  4160.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar56 >> 0x30,0),
  4161.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar56 >>0x20,0),uVar52
  4162.                                        ));
  4163.             _uVar52 = CONCAT210(SUB162(auVar67 >> 0x50,0),
  4164.                                 CONCAT28(SUB162(auVar67 >> 0x40,0),_uVar52));
  4165.             *puVar15 = uVar52;
  4166.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4167.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4168.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar67 >> 0x70,0),
  4169.                                           CONCAT212(SUB162(auVar67 >> 0x60,0),_uVar52)) >> 0x60,0);
  4170.                     /* WARNING: Load size is inaccurate */
  4171.             auVar65 = *(undefined *)(param_1 + 0x11fb0);
  4172.             auVar67 = psraw(CONCAT214(sVar64 - SUB162(auVar65 >> 0x70,0),
  4173.                                       CONCAT212(sVar63 - SUB162(auVar65 >> 0x60,0),
  4174.                                                 CONCAT210(sVar62 - SUB162(auVar65 >> 0x50,0),
  4175.                                                           CONCAT28(sVar61 - SUB162(auVar65 >>0x40,0
  4176.                                                                                   ),
  4177.                                                                    CONCAT26(sVar60 -SUB162(auVar65
  4178.                                                   >> 0x30,0),
  4179.                                                   CONCAT24(sVar59 - SUB162(auVar65 >> 0x20,0),
  4180.                                                            CONCAT22(sVar57 - SUB162(auVar65 >>0x10,
  4181.                                                                                     0),
  4182.                                                                     sVar17 -SUB162(auVar65,0)))))))
  4183.                                      ) | auVar65,0xf);
  4184.             auVar65 = psraw(auVar65 ^ auVar66,0xf);
  4185.             auVar67 = (auVar65 | auVar55) & auVar67;
  4186.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar69 >> 0x10,0),
  4187.                               SUB162(auVar67,0) + SUB162(auVar69,0));
  4188.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar69 >> 0x30,0),
  4189.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar69 >>0x20,0),uVar52
  4190.                                        ));
  4191.             _uVar52 = CONCAT210(SUB162(auVar69 >> 0x50,0),
  4192.                                 CONCAT28(SUB162(auVar69 >> 0x40,0),_uVar52));
  4193.             puVar15[4] = uVar52;
  4194.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4195.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4196.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar69 >> 0x70,0),
  4197.                                           CONCAT212(SUB162(auVar69 >> 0x60,0),_uVar52)) >> 0x60,0);
  4198.             puVar15 = *(undefined4 **)(param_1 + 0x12000);
  4199.                     /* WARNING: Load size is inaccurate */
  4200.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x11fa0) >> 0x10,0);
  4201.                     /* WARNING: Load size is inaccurate */
  4202.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x11fb0) >> 0x10,0);
  4203.           }
  4204.           uVar5 = *(undefined2 *)(param_1 + 0x11fb0);
  4205.           *(undefined4 *)(param_1 + 0x11fa0) = SUB144(auVar58,0);
  4206.           *(undefined4 *)(param_1 + 0x11fa4) = SUB144(auVar58 >> 0x20,0);
  4207.           *(undefined4 *)(param_1 + 0x11fa8) = SUB144(auVar58 >> 0x40,0);
  4208.           *(uint *)(param_1 + 0x11fac) = SUB144(auVar58 >> 0x60,0);
  4209.           *(undefined4 *)(param_1 + 0x11fb0) = SUB144(auVar70,0);
  4210.           *(undefined4 *)(param_1 + 0x11fb4) = SUB144(auVar70 >> 0x20,0);
  4211.           *(undefined4 *)(param_1 + 0x11fb8) = SUB144(auVar70 >> 0x40,0);
  4212.           *(uint *)(param_1 + 0x11fbc) = SUB144(auVar70 >> 0x60,0);
  4213.           *(undefined2 *)(param_1 + 0x11fae) = uVar5;
  4214.           *(short *)(param_1 + 0x11fba) = *(short *)(param_1 + 0x11fba) - (short)cVar42;
  4215.           *(short *)(param_1 + 0x11fbe) = (short)cVar42;
  4216.           *(longlong *)(param_1 + 0x12000) =
  4217.                ((ulonglong)(puVar15 == (undefined4 *)(param_1 + 0x11fc0)) + 1) * 0x20 + lVar14;
  4218.           *pcVar44 = cVar42 + -0x80;
  4219.           if (pcVar33 + 0x20 == pcVar44 + 1) break;
  4220.           uVar13 = *(uint *)(param_1 + 0x12740);
  4221.           pcVar44 = pcVar44 + 1;
  4222.         }
  4223.         goto LAB_00407f20;
  4224.       case -0x13:
  4225.         psVar26 = (short *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  4226.                            *(longlong *)(param_1 + 0x58));
  4227.         if (*(uint *)(param_1 + 0x13390) != uStack256) {
  4228.           psVar32 = psVar26 + -0x10;
  4229.           do {
  4230.             puVar15 = *(undefined4 **)(param_1 + 0x12fc0);
  4231.                     /* WARNING: Load size is inaccurate */
  4232.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x12f90) >> 0x10,0);
  4233.                     /* WARNING: Load size is inaccurate */
  4234.             auVar53 = *(undefined *)(param_1 + 0x12f80);
  4235.             auVar58 = SUB1614(auVar53 >> 0x10,0);
  4236.             sVar12 = *psVar32;
  4237.                     /* WARNING: Load size is inaccurate */
  4238.             auVar54 = *(undefined *)(puVar15 + 4);
  4239.                     /* WARNING: Load size is inaccurate */
  4240.             auVar55 = *(undefined *)puVar15;
  4241.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x12f90),auVar54);
  4242.             auVar69 = pmaddwd(auVar53,auVar55);
  4243.             sVar17 = sVar12 - (short)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  4244.                                       SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  4245.                                       SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x800
  4246.                                       + SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >>0xc
  4247.                                      );
  4248.             if (sVar17 != 0) {
  4249.               uVar52 = CONCAT22(sVar17,sVar17);
  4250.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  4251.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4252.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4253.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4254.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4255.                                                                      CONCAT26(-SUB162(auVar53 >>
  4256.                                                                                       0x30,0),
  4257.                                                                               CONCAT24(-SUB162(
  4258.                                                   auVar53 >> 0x20,0),
  4259.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4260.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4261.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4262.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  4263.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  4264.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  4265.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  4266.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  4267.                                           uVar52));
  4268.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  4269.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  4270.               *puVar15 = uVar52;
  4271.               puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4272.               puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4273.               puVar15[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  4274.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  4275.               ;
  4276.                     /* WARNING: Load size is inaccurate */
  4277.               auVar53 = *(undefined *)(param_1 + 0x12f90);
  4278.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4279.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4280.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4281.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4282.                                                                      CONCAT26(-SUB162(auVar53 >>
  4283.                                                                                       0x30,0),
  4284.                                                                               CONCAT24(-SUB162(
  4285.                                                   auVar53 >> 0x20,0),
  4286.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4287.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4288.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4289.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  4290.               uVar52 = CONCAT22(SUB162(auVar54 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  4291.                                 SUB162(auVar54,0) + SUB162(auVar55,0));
  4292.               _uVar52 = CONCAT26(SUB162(auVar54 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  4293.                                  CONCAT24(SUB162(auVar54 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  4294.                                           uVar52));
  4295.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  4296.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  4297.               puVar15[4] = uVar52;
  4298.               puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4299.               puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4300.               puVar15[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  4301.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  4302.               ;
  4303.                     /* WARNING: Load size is inaccurate */
  4304.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x12f80) >> 0x10,0);
  4305.                     /* WARNING: Load size is inaccurate */
  4306.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x12f90) >> 0x10,0);
  4307.             }
  4308.             uVar5 = *(undefined2 *)(param_1 + 0x12f90);
  4309.             puVar15 = *(undefined4 **)(param_1 + 0x13010);
  4310.             *(undefined4 *)(param_1 + 0x12f80) = SUB144(auVar58,0);
  4311.             *(undefined4 *)(param_1 + 0x12f84) = SUB144(auVar58 >> 0x20,0);
  4312.             *(undefined4 *)(param_1 + 0x12f88) = SUB144(auVar58 >> 0x40,0);
  4313.             *(uint *)(param_1 + 0x12f8c) = SUB144(auVar58 >> 0x60,0);
  4314.             *(undefined4 *)(param_1 + 0x12f90) = SUB144(auVar70,0);
  4315.             *(undefined4 *)(param_1 + 0x12f94) = SUB144(auVar70 >> 0x20,0);
  4316.             *(undefined4 *)(param_1 + 0x12f98) = SUB144(auVar70 >> 0x40,0);
  4317.             *(uint *)(param_1 + 0x12f9c) = SUB144(auVar70 >> 0x60,0);
  4318.                     /* WARNING: Load size is inaccurate */
  4319.             auVar53 = *(undefined *)(param_1 + 0x12fd0);
  4320.             auVar70 = SUB1614(auVar53 >> 0x10,0);
  4321.                     /* WARNING: Load size is inaccurate */
  4322.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x12fe0) >> 0x10,0);
  4323.             *(short *)(param_1 + 0x12f9e) = sVar12;
  4324.             *(short *)(param_1 + 0x12f9c) = *(short *)(param_1 + 0x12f9c) - sVar12;
  4325.             *(undefined2 *)(param_1 + 0x12f8e) = uVar5;
  4326.                     /* WARNING: Load size is inaccurate */
  4327.             auVar54 = *(undefined *)(puVar15 + 4);
  4328.                     /* WARNING: Load size is inaccurate */
  4329.             auVar55 = *(undefined *)puVar15;
  4330.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x12fe0),auVar54);
  4331.             auVar69 = pmaddwd(auVar53,auVar55);
  4332.             sVar12 = sVar17 - (short)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  4333.                                       SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  4334.                                       SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200
  4335.                                       + SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >>10)
  4336.             ;
  4337.             if (sVar12 != 0) {
  4338.               uVar52 = CONCAT22(sVar12,sVar12);
  4339.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  4340.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4341.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4342.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4343.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4344.                                                                      CONCAT26(-SUB162(auVar53 >>
  4345.                                                                                       0x30,0),
  4346.                                                                               CONCAT24(-SUB162(
  4347.                                                   auVar53 >> 0x20,0),
  4348.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4349.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4350.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4351.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  4352.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  4353.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  4354.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  4355.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  4356.                                           uVar52));
  4357.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  4358.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  4359.               *puVar15 = uVar52;
  4360.               puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4361.               puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4362.               puVar15[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  4363.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  4364.               ;
  4365.                     /* WARNING: Load size is inaccurate */
  4366.               auVar53 = *(undefined *)(param_1 + 0x12fe0);
  4367.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4368.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4369.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4370.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4371.                                                                      CONCAT26(-SUB162(auVar53 >>
  4372.                                                                                       0x30,0),
  4373.                                                                               CONCAT24(-SUB162(
  4374.                                                   auVar53 >> 0x20,0),
  4375.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4376.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4377.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4378.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  4379.               uVar52 = CONCAT22(SUB162(auVar54 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  4380.                                 SUB162(auVar54,0) + SUB162(auVar55,0));
  4381.               _uVar52 = CONCAT26(SUB162(auVar54 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  4382.                                  CONCAT24(SUB162(auVar54 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  4383.                                           uVar52));
  4384.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  4385.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  4386.               puVar15[4] = uVar52;
  4387.               puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4388.               puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4389.               puVar15[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  4390.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  4391.               ;
  4392.                     /* WARNING: Load size is inaccurate */
  4393.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x12fd0) >> 0x10,0);
  4394.                     /* WARNING: Load size is inaccurate */
  4395.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x12fe0) >> 0x10,0);
  4396.             }
  4397.             puVar15 = (undefined4 *)(longlong)*(int *)(param_1 + 0x13380);
  4398.             uVar5 = *(undefined2 *)(param_1 + 0x12fe0);
  4399.             *(undefined4 *)(param_1 + 0x12fe0) = SUB144(auVar58,0);
  4400.             *(undefined4 *)(param_1 + 0x12fe4) = SUB144(auVar58 >> 0x20,0);
  4401.             *(undefined4 *)(param_1 + 0x12fe8) = SUB144(auVar58 >> 0x40,0);
  4402.             *(uint *)(param_1 + 0x12fec) = SUB144(auVar58 >> 0x60,0);
  4403.             *(short *)(param_1 + 0x12fec) = *(short *)(param_1 + 0x12fec) - sVar17;
  4404.             *(short *)(param_1 + 0x12fee) = sVar17;
  4405.             *(undefined4 *)(param_1 + 0x12fd0) = SUB144(auVar70,0);
  4406.             *(undefined4 *)(param_1 + 0x12fd4) = SUB144(auVar70 >> 0x20,0);
  4407.             *(undefined4 *)(param_1 + 0x12fd8) = SUB144(auVar70 >> 0x40,0);
  4408.             *(uint *)(param_1 + 0x12fdc) = SUB144(auVar70 >> 0x60,0);
  4409.             *(undefined2 *)(param_1 + 0x12fde) = uVar5;
  4410.             puVar16 = *(undefined4 **)(param_1 + 0x13060 + (longlong)puVar15 * 0x50);
  4411.             puVar35 = (undefined *)(param_1 + 0x13020 + (longlong)puVar15 * 0x50);
  4412.                     /* WARNING: Load size is inaccurate */
  4413.             auVar53 = *(undefined *)puVar35;
  4414.                     /* WARNING: Load size is inaccurate */
  4415.             auVar54 = *(undefined *)(puVar16 + 4);
  4416.                     /* WARNING: Load size is inaccurate */
  4417.             auVar55 = *(undefined *)puVar16;
  4418.                     /* WARNING: Load size is inaccurate */
  4419.             auVar65 = pmaddwd(auVar54,*(undefined *)(puVar35 + 0x10));
  4420.             auVar69 = pmaddwd(auVar53,auVar55);
  4421.             sVar17 = sVar12 - (short)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  4422.                                       SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  4423.                                       SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200
  4424.                                       + SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >>10)
  4425.             ;
  4426.             if (sVar17 != 0) {
  4427.               uVar52 = CONCAT22(sVar17,sVar17);
  4428.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  4429.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4430.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4431.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4432.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4433.                                                                      CONCAT26(-SUB162(auVar53 >>
  4434.                                                                                       0x30,0),
  4435.                                                                               CONCAT24(-SUB162(
  4436.                                                   auVar53 >> 0x20,0),
  4437.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4438.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4439.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4440.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  4441.               uVar52 = CONCAT22(SUB162(auVar65 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  4442.                                 SUB162(auVar65,0) + SUB162(auVar55,0));
  4443.               _uVar52 = CONCAT26(SUB162(auVar65 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  4444.                                  CONCAT24(SUB162(auVar65 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  4445.                                           uVar52));
  4446.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  4447.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  4448.               *puVar16 = uVar52;
  4449.               puVar16[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4450.               puVar16[2] = SUB124(_uVar52 >> 0x40,0);
  4451.               puVar16[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  4452.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  4453.               ;
  4454.                     /* WARNING: Load size is inaccurate */
  4455.               auVar53 = *(undefined *)(puVar35 + 0x10);
  4456.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4457.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4458.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4459.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4460.                                                                      CONCAT26(-SUB162(auVar53 >>
  4461.                                                                                       0x30,0),
  4462.                                                                               CONCAT24(-SUB162(
  4463.                                                   auVar53 >> 0x20,0),
  4464.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4465.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4466.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4467.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  4468.               uVar52 = CONCAT22(SUB162(auVar54 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  4469.                                 SUB162(auVar54,0) + SUB162(auVar55,0));
  4470.               _uVar52 = CONCAT26(SUB162(auVar54 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  4471.                                  CONCAT24(SUB162(auVar54 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  4472.                                           uVar52));
  4473.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  4474.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  4475.               puVar16[4] = uVar52;
  4476.               puVar16[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4477.               puVar16[6] = SUB124(_uVar52 >> 0x40,0);
  4478.               puVar16[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  4479.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  4480.               ;
  4481.             }
  4482.             uVar5 = *(undefined2 *)(puVar35 + 0x10);
  4483.             psVar32 = psVar32 + 1;
  4484.             lVar14 = (longlong)puVar15 * 0x50 + param_1;
  4485.                     /* WARNING: Load size is inaccurate */
  4486.             auVar53 = *(undefined *)(lVar14 + 0x13020);
  4487.             *(undefined4 *)(lVar14 + 0x13020) = SUB164(auVar53 >> 0x10,0);
  4488.             *(undefined4 *)(lVar14 + 0x13024) = SUB164(auVar53 >> 0x30,0);
  4489.             *(undefined4 *)(lVar14 + 0x13028) = SUB164(auVar53 >> 0x50,0);
  4490.             *(uint *)(lVar14 + 0x1302c) = SUB164(auVar53 >> 0x70,0);
  4491.                     /* WARNING: Load size is inaccurate */
  4492.             auVar53 = *(undefined *)(lVar14 + 0x13030);
  4493.             *(undefined4 *)(lVar14 + 0x13030) = SUB164(auVar53 >> 0x10,0);
  4494.             *(undefined4 *)(lVar14 + 0x13034) = SUB164(auVar53 >> 0x30,0);
  4495.             *(undefined4 *)(lVar14 + 0x13038) = SUB164(auVar53 >> 0x50,0);
  4496.             *(uint *)(lVar14 + 0x1303c) = SUB164(auVar53 >> 0x70,0);
  4497.             *(short *)(puVar35 + 0x1c) = *(short *)(puVar35 + 0x1c) - sVar12;
  4498.             *(undefined2 *)(puVar35 + 0xe) = uVar5;
  4499.             *(short *)(puVar35 + 0x1e) = sVar12;
  4500.           } while (psVar26 != psVar32);
  4501.         }
  4502.         auVar53 = (undefined  [16])0x1000100010001;
  4503.         auVar55 = (undefined  [16])0x1000100010001;
  4504.         auVar54 = (undefined  [16])0x1000100010001;
  4505.         *(int *)(param_1 + 0x13390) = uStack256 + 0x20;
  4506.         psVar32 = psVar26;
  4507.         do {
  4508.           uVar45 = SUB84(puVar15,0);
  4509.           lVar14 = (longlong)*(int *)(param_1 + 0x13380);
  4510.           uVar11 = (ulonglong)*(uint *)(param_1 + 0x13370 + lVar14 * 0x310);
  4511.           uVar13 = *(uint *)(param_1 + 0x40);
  4512.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  4513.           *(uint *)(param_1 + 0x3c) = uVar13;
  4514.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  4515.           if (uVar13 < 0x10000) {
  4516.             FUN_00417f00(plVar1);
  4517.             uVar13 = *(uint *)(param_1 + 0x3c);
  4518.           }
  4519.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  4520.           lVar21 = uVar11 * 0x30 + lVar14 * 0x310 + param_1;
  4521.                     /* WARNING: Load size is inaccurate */
  4522.           auVar65 = *(undefined *)(lVar21 + 0x13070);
  4523.                     /* WARNING: Load size is inaccurate */
  4524.           auVar69 = *(undefined *)(lVar21 + 0x13080);
  4525.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  4526.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  4527.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  4528.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  4529.                                                                     sVar12,CONCAT26(SUB162(auVar65
  4530.                                                   >> 0x30,0) - sVar12,
  4531.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  4532.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  4533.                                                                     sVar12,SUB162(auVar65,0) -
  4534.                                                                            sVar12))))))),
  4535.                              CONCAT214(SUB162(auVar69 >> 0x70,0) - sVar12,
  4536.                                        CONCAT212(SUB162(auVar69 >> 0x60,0) - sVar12,
  4537.                                                  CONCAT210(SUB162(auVar69 >> 0x50,0) - sVar12,
  4538.                                                            CONCAT28(SUB162(auVar69 >> 0x40,0) -
  4539.                                                                     sVar12,CONCAT26(SUB162(auVar69
  4540.                                                   >> 0x30,0) - sVar12,
  4541.                                                   CONCAT24(SUB162(auVar69 >> 0x20,0) - sVar12,
  4542.                                                            CONCAT22(SUB162(auVar69 >> 0x10,0) -
  4543.                                                                     sVar12,SUB162(auVar69,0) -
  4544.                                                                            sVar12))))))));
  4545.           uVar41 = pmovmskb(uVar45,auVar65);
  4546.                     /* WARNING: Load size is inaccurate */
  4547.           auVar65 = *(undefined *)(lVar21 + 0x13090);
  4548.           auVar65 = packsswb(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar12,
  4549.                                        CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar12,
  4550.                                                  CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar12,
  4551.                                                            CONCAT28(SUB162(auVar65 >> 0x40,0) -
  4552.                                                                     sVar12,CONCAT26(SUB162(auVar65
  4553.                                                   >> 0x30,0) - sVar12,
  4554.                                                   CONCAT24(SUB162(auVar65 >> 0x20,0) - sVar12,
  4555.                                                            CONCAT22(SUB162(auVar65 >> 0x10,0) -
  4556.                                                                     sVar12,SUB162(auVar65,0) -
  4557.                                                                            sVar12))))))),
  4558.                              (undefined  [16])0x0);
  4559.           iVar8 = pmovmskb((int)(lVar14 * 0x310),auVar65);
  4560.           uVar41 = iVar8 << 0x10 | uVar41;
  4561.           uVar43 = 0x1f;
  4562.           if (uVar41 != 0) {
  4563.             while (uVar41 >> uVar43 == 0) {
  4564.               uVar43 = uVar43 - 1;
  4565.             }
  4566.           }
  4567.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  4568.           uVar25 = (ulonglong)uVar41;
  4569.           lVar21 = lVar14 * 0x188 + uVar11 * 0x18;
  4570.           uVar50 = (uint)*(ushort *)(param_1 + 0x12f80 + (lVar21 + 0x78 + uVar25) * 2);
  4571.           *(int *)(param_1 + 0x3c) =
  4572.                (uVar13 - uVar50 & 0x3fff) +
  4573.                (uVar13 >> 0xe) *
  4574.                (*(ushort *)
  4575.                  (param_1 + 0x12f80 + (lVar21 + 0x78 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) * 2)-
  4576.                uVar50);
  4577.           FUN_0041e3c0((undefined4 *)(lVar14 * 0x310 + uVar11 * 0x30 + param_1 + 0x13070),uVar41);
  4578.           iVar8 = 0;
  4579.           if (*(byte *)(DAT_004315c0 + uVar25) != 0) {
  4580.             uVar11 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_004315c0 + uVar25));
  4581.             iVar8 = (int)uVar11;
  4582.           }
  4583.           uVar43 = (iVar8 + (&DAT_004315f8)[uVar25]) - DAT_00431700;
  4584.           lVar21 = lVar14 * 0x310 + param_1;
  4585.           uVar13 = *(uint *)(lVar21 + 0x13370);
  4586.           if (uVar13 != 0) {
  4587.             uVar11 = FUN_00417f40(plVar1,uVar13);
  4588.             uVar43 = uVar43 << ((byte)*(undefined4 *)(lVar21 + 0x13370) & 0x1f) | (uint)uVar11;
  4589.           }
  4590.           lVar14 = lVar14 * 0x310 + param_1;
  4591.           iVar8 = *(int *)(lVar14 + 0x13370);
  4592.           uVar13 = (*(uint *)(lVar14 + 0x13374) - (*(uint *)(lVar14 + 0x13374) >> 3)) + uVar43;
  4593.           *(uint *)(lVar14 + 0x13374) = uVar13;
  4594.           uVar13 = uVar13 >> ((byte)iVar8 & 0x1f);
  4595.           if (uVar13 < 0x11) {
  4596.             if (uVar13 < 8) {
  4597.               *(int *)(lVar14 + 0x13370) = iVar8 - (iVar8 + 0x1fU >> 5);
  4598.             }
  4599.           }
  4600.           else {
  4601.             *(int *)(lVar14 + 0x13370) = iVar8 + 1;
  4602.           }
  4603.           iVar8 = *(int *)(param_1 + 0x13380);
  4604.           uVar13 = uVar43 >> 1;
  4605.           if ((uVar43 & 1) != 0) {
  4606.             uVar13 = ~(uVar43 >> 1);
  4607.           }
  4608.           lVar14 = (longlong)iVar8 * 0x50;
  4609.           puVar15 = *(undefined4 **)(param_1 + 0x13060 + lVar14);
  4610.           puVar35 = (undefined *)(param_1 + 0x13020 + lVar14);
  4611.                     /* WARNING: Load size is inaccurate */
  4612.           auVar65 = *(undefined *)puVar35;
  4613.                     /* WARNING: Load size is inaccurate */
  4614.           auVar69 = *(undefined *)(puVar15 + 4);
  4615.                     /* WARNING: Load size is inaccurate */
  4616.           auVar67 = *(undefined *)puVar15;
  4617.                     /* WARNING: Load size is inaccurate */
  4618.           auVar56 = pmaddwd(auVar69,*(undefined *)(puVar35 + 0x10));
  4619.           auVar66 = pmaddwd(auVar65,auVar67);
  4620.           uVar43 = (SUB164(auVar56,0) + SUB164(auVar66,0) +
  4621.                     SUB164(auVar56 >> 0x20,0) + SUB164(auVar66 >> 0x20,0) +
  4622.                     SUB164(auVar56 >> 0x40,0) + SUB164(auVar66 >> 0x40,0) + 0x200 +
  4623.                     SUB164(auVar56 >> 0x60,0) + SUB164(auVar66 >> 0x60,0) >> 10) + uVar13;
  4624.           if ((short)uVar13 != 0) {
  4625.             uVar13 = uVar13 & 0xffff | uVar13 << 0x10;
  4626.             auVar56 = CONCAT412(uVar13,CONCAT48(uVar13,CONCAT44(uVar13,uVar13)));
  4627.             auVar66 = psraw(CONCAT214(-SUB162(auVar65 >> 0x70,0),
  4628.                                       CONCAT212(-SUB162(auVar65 >> 0x60,0),
  4629.                                                 CONCAT210(-SUB162(auVar65 >> 0x50,0),
  4630.                                                           CONCAT28(-SUB162(auVar65 >> 0x40,0),
  4631.                                                                    CONCAT26(-SUB162(auVar65 >>0x30,
  4632.                                                                                     0),
  4633.                                                                             CONCAT24(-SUB162(auVar65
  4634.                                                                                              >> 0x20
  4635.                                                   ,0),CONCAT22(-SUB162(auVar65 >> 0x10,0),
  4636.                                                                -SUB162(auVar65,0)))))))) | auVar65,
  4637.                             0xf);
  4638.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4639.             auVar66 = (auVar65 | auVar53) & auVar66;
  4640.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar66 >> 0x10,0),
  4641.                               SUB162(auVar67,0) + SUB162(auVar66,0));
  4642.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar66 >> 0x30,0),
  4643.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar66 >>0x20,0),uVar52
  4644.                                        ));
  4645.             _uVar52 = CONCAT210(SUB162(auVar67 >> 0x50,0),
  4646.                                 CONCAT28(SUB162(auVar67 >> 0x40,0),_uVar52));
  4647.             *puVar15 = uVar52;
  4648.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4649.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4650.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar67 >> 0x70,0),
  4651.                                           CONCAT212(SUB162(auVar67 >> 0x60,0),_uVar52)) >> 0x60,0);
  4652.                     /* WARNING: Load size is inaccurate */
  4653.             auVar65 = *(undefined *)(puVar35 + 0x10);
  4654.             auVar67 = psraw(CONCAT214(-SUB162(auVar65 >> 0x70,0),
  4655.                                       CONCAT212(-SUB162(auVar65 >> 0x60,0),
  4656.                                                 CONCAT210(-SUB162(auVar65 >> 0x50,0),
  4657.                                                           CONCAT28(-SUB162(auVar65 >> 0x40,0),
  4658.                                                                    CONCAT26(-SUB162(auVar65 >>0x30,
  4659.                                                                                     0),
  4660.                                                                             CONCAT24(-SUB162(auVar65
  4661.                                                                                              >> 0x20
  4662.                                                   ,0),CONCAT22(-SUB162(auVar65 >> 0x10,0),
  4663.                                                                -SUB162(auVar65,0)))))))) | auVar65,
  4664.                             0xf);
  4665.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4666.             auVar67 = (auVar65 | auVar53) & auVar67;
  4667.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar69 >> 0x10,0),
  4668.                               SUB162(auVar67,0) + SUB162(auVar69,0));
  4669.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar69 >> 0x30,0),
  4670.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar69 >>0x20,0),uVar52
  4671.                                        ));
  4672.             _uVar52 = CONCAT210(SUB162(auVar69 >> 0x50,0),
  4673.                                 CONCAT28(SUB162(auVar69 >> 0x40,0),_uVar52));
  4674.             puVar15[4] = uVar52;
  4675.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4676.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4677.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar69 >> 0x70,0),
  4678.                                           CONCAT212(SUB162(auVar69 >> 0x60,0),_uVar52)) >> 0x60,0);
  4679.           }
  4680.           uVar5 = *(undefined2 *)(puVar35 + 0x10);
  4681.           lVar14 = (longlong)iVar8 * 0x50 + param_1;
  4682.                     /* WARNING: Load size is inaccurate */
  4683.           auVar65 = *(undefined *)(lVar14 + 0x13020);
  4684.           *(undefined4 *)(lVar14 + 0x13020) = SUB164(auVar65 >> 0x10,0);
  4685.           *(undefined4 *)(lVar14 + 0x13024) = SUB164(auVar65 >> 0x30,0);
  4686.           *(undefined4 *)(lVar14 + 0x13028) = SUB164(auVar65 >> 0x50,0);
  4687.           *(uint *)(lVar14 + 0x1302c) = SUB164(auVar65 >> 0x70,0);
  4688.                     /* WARNING: Load size is inaccurate */
  4689.           auVar65 = *(undefined *)(lVar14 + 0x13030);
  4690.           *(undefined4 *)(lVar14 + 0x13030) = SUB164(auVar65 >> 0x10,0);
  4691.           *(undefined4 *)(lVar14 + 0x13034) = SUB164(auVar65 >> 0x30,0);
  4692.           *(undefined4 *)(lVar14 + 0x13038) = SUB164(auVar65 >> 0x50,0);
  4693.           *(uint *)(lVar14 + 0x1303c) = SUB164(auVar65 >> 0x70,0);
  4694.           puVar15 = *(undefined4 **)(param_1 + 0x13010);
  4695.           sVar12 = (short)uVar43;
  4696.           *(short *)(puVar35 + 0x1c) = *(short *)(puVar35 + 0x1c) - sVar12;
  4697.           *(undefined2 *)(puVar35 + 0xe) = uVar5;
  4698.           *(short *)(puVar35 + 0x1e) = sVar12;
  4699.                     /* WARNING: Load size is inaccurate */
  4700.           auVar70 = SUB1614(*(undefined *)(param_1 + 0x12fe0) >> 0x10,0);
  4701.                     /* WARNING: Load size is inaccurate */
  4702.           auVar65 = *(undefined *)(param_1 + 0x12fd0);
  4703.           auVar58 = SUB1614(auVar65 >> 0x10,0);
  4704.                     /* WARNING: Load size is inaccurate */
  4705.           auVar69 = *(undefined *)(puVar15 + 4);
  4706.                     /* WARNING: Load size is inaccurate */
  4707.           auVar67 = *(undefined *)puVar15;
  4708.           auVar56 = pmaddwd(*(undefined *)(param_1 + 0x12fe0),auVar69);
  4709.           auVar66 = pmaddwd(auVar65,auVar67);
  4710.           uVar13 = (SUB164(auVar56,0) + SUB164(auVar66,0) +
  4711.                     SUB164(auVar56 >> 0x20,0) + SUB164(auVar66 >> 0x20,0) +
  4712.                     SUB164(auVar56 >> 0x40,0) + SUB164(auVar66 >> 0x40,0) + 0x200 +
  4713.                     SUB164(auVar56 >> 0x60,0) + SUB164(auVar66 >> 0x60,0) >> 10) + uVar43;
  4714.           if (sVar12 != 0) {
  4715.             uVar43 = uVar43 & 0xffff | uVar43 * 0x10000;
  4716.             auVar56 = CONCAT412(uVar43,CONCAT48(uVar43,CONCAT44(uVar43,uVar43)));
  4717.             auVar66 = psraw(CONCAT214(-SUB162(auVar65 >> 0x70,0),
  4718.                                       CONCAT212(-SUB162(auVar65 >> 0x60,0),
  4719.                                                 CONCAT210(-SUB162(auVar65 >> 0x50,0),
  4720.                                                           CONCAT28(-SUB162(auVar65 >> 0x40,0),
  4721.                                                                    CONCAT26(-SUB162(auVar65 >>0x30,
  4722.                                                                                     0),
  4723.                                                                             CONCAT24(-SUB162(auVar65
  4724.                                                                                              >> 0x20
  4725.                                                   ,0),CONCAT22(-SUB162(auVar65 >> 0x10,0),
  4726.                                                                -SUB162(auVar65,0)))))))) | auVar65,
  4727.                             0xf);
  4728.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4729.             auVar66 = (auVar65 | auVar55) & auVar66;
  4730.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar66 >> 0x10,0),
  4731.                               SUB162(auVar67,0) + SUB162(auVar66,0));
  4732.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar66 >> 0x30,0),
  4733.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar66 >>0x20,0),uVar52
  4734.                                        ));
  4735.             _uVar52 = CONCAT210(SUB162(auVar67 >> 0x50,0),
  4736.                                 CONCAT28(SUB162(auVar67 >> 0x40,0),_uVar52));
  4737.             *puVar15 = uVar52;
  4738.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4739.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4740.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar67 >> 0x70,0),
  4741.                                           CONCAT212(SUB162(auVar67 >> 0x60,0),_uVar52)) >> 0x60,0);
  4742.                     /* WARNING: Load size is inaccurate */
  4743.             auVar65 = *(undefined *)(param_1 + 0x12fe0);
  4744.             auVar67 = psraw(CONCAT214(-SUB162(auVar65 >> 0x70,0),
  4745.                                       CONCAT212(-SUB162(auVar65 >> 0x60,0),
  4746.                                                 CONCAT210(-SUB162(auVar65 >> 0x50,0),
  4747.                                                           CONCAT28(-SUB162(auVar65 >> 0x40,0),
  4748.                                                                    CONCAT26(-SUB162(auVar65 >>0x30,
  4749.                                                                                     0),
  4750.                                                                             CONCAT24(-SUB162(auVar65
  4751.                                                                                              >> 0x20
  4752.                                                   ,0),CONCAT22(-SUB162(auVar65 >> 0x10,0),
  4753.                                                                -SUB162(auVar65,0)))))))) | auVar65,
  4754.                             0xf);
  4755.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4756.             auVar67 = (auVar65 | auVar55) & auVar67;
  4757.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + SUB162(auVar67 >> 0x10,0),
  4758.                               SUB162(auVar69,0) + SUB162(auVar67,0));
  4759.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + SUB162(auVar67 >> 0x30,0),
  4760.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + SUB162(auVar67 >>0x20,0),uVar52
  4761.                                        ));
  4762.             _uVar52 = CONCAT210(SUB162(auVar69 >> 0x50,0),
  4763.                                 CONCAT28(SUB162(auVar69 >> 0x40,0),_uVar52));
  4764.             puVar15[4] = uVar52;
  4765.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4766.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4767.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar69 >> 0x70,0),
  4768.                                           CONCAT212(SUB162(auVar69 >> 0x60,0),_uVar52)) >> 0x60,0);
  4769.                     /* WARNING: Load size is inaccurate */
  4770.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x12fd0) >> 0x10,0);
  4771.                     /* WARNING: Load size is inaccurate */
  4772.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x12fe0) >> 0x10,0);
  4773.           }
  4774.           uVar5 = *(undefined2 *)(param_1 + 0x12fe0);
  4775.           puVar15 = *(undefined4 **)(param_1 + 0x12fc0);
  4776.           *(undefined4 *)(param_1 + 0x12fd0) = SUB144(auVar58,0);
  4777.           *(undefined4 *)(param_1 + 0x12fd4) = SUB144(auVar58 >> 0x20,0);
  4778.           *(undefined4 *)(param_1 + 0x12fd8) = SUB144(auVar58 >> 0x40,0);
  4779.           *(uint *)(param_1 + 0x12fdc) = SUB144(auVar58 >> 0x60,0);
  4780.           *(undefined4 *)(param_1 + 0x12fe0) = SUB144(auVar70,0);
  4781.           *(undefined4 *)(param_1 + 0x12fe4) = SUB144(auVar70 >> 0x20,0);
  4782.           *(undefined4 *)(param_1 + 0x12fe8) = SUB144(auVar70 >> 0x40,0);
  4783.           *(uint *)(param_1 + 0x12fec) = SUB144(auVar70 >> 0x60,0);
  4784.                     /* WARNING: Load size is inaccurate */
  4785.           auVar65 = *(undefined *)(param_1 + 0x12f80);
  4786.           auVar70 = SUB1614(auVar65 >> 0x10,0);
  4787.                     /* WARNING: Load size is inaccurate */
  4788.           auVar58 = SUB1614(*(undefined *)(param_1 + 0x12f90) >> 0x10,0);
  4789.           sVar12 = (short)uVar13;
  4790.           *(short *)(param_1 + 0x12fee) = sVar12;
  4791.           *(undefined2 *)(param_1 + 0x12fde) = uVar5;
  4792.           *(short *)(param_1 + 0x12fec) = *(short *)(param_1 + 0x12fec) - sVar12;
  4793.                     /* WARNING: Load size is inaccurate */
  4794.           auVar69 = *(undefined *)(puVar15 + 4);
  4795.                     /* WARNING: Load size is inaccurate */
  4796.           auVar67 = *(undefined *)puVar15;
  4797.           auVar56 = pmaddwd(*(undefined *)(param_1 + 0x12f90),auVar69);
  4798.           auVar66 = pmaddwd(auVar65,auVar67);
  4799.           sVar17 = (short)(SUB164(auVar56,0) + SUB164(auVar66,0) +
  4800.                            SUB164(auVar56 >> 0x20,0) + SUB164(auVar66 >> 0x20,0) +
  4801.                            SUB164(auVar56 >> 0x40,0) + SUB164(auVar66 >> 0x40,0) + 0x800 +
  4802.                            SUB164(auVar56 >> 0x60,0) + SUB164(auVar66 >> 0x60,0) >> 0xc) + sVar12;
  4803.           if (sVar12 != 0) {
  4804.             uVar13 = uVar13 & 0xffff | uVar13 * 0x10000;
  4805.             auVar56 = CONCAT412(uVar13,CONCAT48(uVar13,CONCAT44(uVar13,uVar13)));
  4806.             auVar66 = psraw(CONCAT214(-SUB162(auVar65 >> 0x70,0),
  4807.                                       CONCAT212(-SUB162(auVar65 >> 0x60,0),
  4808.                                                 CONCAT210(-SUB162(auVar65 >> 0x50,0),
  4809.                                                           CONCAT28(-SUB162(auVar65 >> 0x40,0),
  4810.                                                                    CONCAT26(-SUB162(auVar65 >>0x30,
  4811.                                                                                     0),
  4812.                                                                             CONCAT24(-SUB162(auVar65
  4813.                                                                                              >> 0x20
  4814.                                                   ,0),CONCAT22(-SUB162(auVar65 >> 0x10,0),
  4815.                                                                -SUB162(auVar65,0)))))))) | auVar65,
  4816.                             0xf);
  4817.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4818.             auVar66 = (auVar65 | auVar54) & auVar66;
  4819.             uVar52 = CONCAT22(SUB162(auVar67 >> 0x10,0) + SUB162(auVar66 >> 0x10,0),
  4820.                               SUB162(auVar67,0) + SUB162(auVar66,0));
  4821.             _uVar52 = CONCAT26(SUB162(auVar67 >> 0x30,0) + SUB162(auVar66 >> 0x30,0),
  4822.                                CONCAT24(SUB162(auVar67 >> 0x20,0) + SUB162(auVar66 >>0x20,0),uVar52
  4823.                                        ));
  4824.             _uVar52 = CONCAT210(SUB162(auVar67 >> 0x50,0),
  4825.                                 CONCAT28(SUB162(auVar67 >> 0x40,0),_uVar52));
  4826.             *puVar15 = uVar52;
  4827.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4828.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4829.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar67 >> 0x70,0),
  4830.                                           CONCAT212(SUB162(auVar67 >> 0x60,0),_uVar52)) >> 0x60,0);
  4831.                     /* WARNING: Load size is inaccurate */
  4832.             auVar65 = *(undefined *)(param_1 + 0x12f90);
  4833.             auVar67 = psraw(CONCAT214(-SUB162(auVar65 >> 0x70,0),
  4834.                                       CONCAT212(-SUB162(auVar65 >> 0x60,0),
  4835.                                                 CONCAT210(-SUB162(auVar65 >> 0x50,0),
  4836.                                                           CONCAT28(-SUB162(auVar65 >> 0x40,0),
  4837.                                                                    CONCAT26(-SUB162(auVar65 >>0x30,
  4838.                                                                                     0),
  4839.                                                                             CONCAT24(-SUB162(auVar65
  4840.                                                                                              >> 0x20
  4841.                                                   ,0),CONCAT22(-SUB162(auVar65 >> 0x10,0),
  4842.                                                                -SUB162(auVar65,0)))))))) | auVar65,
  4843.                             0xf);
  4844.             auVar65 = psraw(auVar65 ^ auVar56,0xf);
  4845.             auVar67 = (auVar65 | auVar54) & auVar67;
  4846.             uVar52 = CONCAT22(SUB162(auVar69 >> 0x10,0) + SUB162(auVar67 >> 0x10,0),
  4847.                               SUB162(auVar69,0) + SUB162(auVar67,0));
  4848.             _uVar52 = CONCAT26(SUB162(auVar69 >> 0x30,0) + SUB162(auVar67 >> 0x30,0),
  4849.                                CONCAT24(SUB162(auVar69 >> 0x20,0) + SUB162(auVar67 >>0x20,0),uVar52
  4850.                                        ));
  4851.             _uVar52 = CONCAT210(SUB162(auVar69 >> 0x50,0),
  4852.                                 CONCAT28(SUB162(auVar69 >> 0x40,0),_uVar52));
  4853.             puVar15[4] = uVar52;
  4854.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4855.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4856.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar69 >> 0x70,0),
  4857.                                           CONCAT212(SUB162(auVar69 >> 0x60,0),_uVar52)) >> 0x60,0);
  4858.                     /* WARNING: Load size is inaccurate */
  4859.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x12f80) >> 0x10,0);
  4860.                     /* WARNING: Load size is inaccurate */
  4861.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x12f90) >> 0x10,0);
  4862.           }
  4863.           uVar5 = *(undefined2 *)(param_1 + 0x12f90);
  4864.           psVar34 = psVar32 + 1;
  4865.           *(undefined4 *)(param_1 + 0x12f80) = SUB144(auVar70,0);
  4866.           *(undefined4 *)(param_1 + 0x12f84) = SUB144(auVar70 >> 0x20,0);
  4867.           *(undefined4 *)(param_1 + 0x12f88) = SUB144(auVar70 >> 0x40,0);
  4868.           *(uint *)(param_1 + 0x12f8c) = SUB144(auVar70 >> 0x60,0);
  4869.           *(undefined4 *)(param_1 + 0x12f90) = SUB144(auVar58,0);
  4870.           *(undefined4 *)(param_1 + 0x12f94) = SUB144(auVar58 >> 0x20,0);
  4871.           *(undefined4 *)(param_1 + 0x12f98) = SUB144(auVar58 >> 0x40,0);
  4872.           *(uint *)(param_1 + 0x12f9c) = SUB144(auVar58 >> 0x60,0);
  4873.           *(short *)(param_1 + 0x12f9c) = *(short *)(param_1 + 0x12f9c) - sVar17;
  4874.           *(short *)(param_1 + 0x12f9e) = sVar17;
  4875.           *(undefined2 *)(param_1 + 0x12f8e) = uVar5;
  4876.           *psVar32 = sVar17;
  4877.           psVar32 = psVar34;
  4878.         } while (psVar26 + 0x10 != psVar34);
  4879.         goto LAB_00407f20;
  4880.       case -0x12:
  4881.         lVar14 = param_1 + 0x14300;
  4882.         psVar26 = (short *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  4883.                            *(longlong *)(param_1 + 0x58));
  4884.         if (*(uint *)(param_1 + 0x14ab0) != uStack256) {
  4885.           psVar32 = psVar26 + -0x10;
  4886.           do {
  4887.             puVar15 = *(undefined4 **)(param_1 + 0x14360);
  4888.                     /* WARNING: Load size is inaccurate */
  4889.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x14310) >> 0x10,0);
  4890.                     /* WARNING: Load size is inaccurate */
  4891.             auVar53 = *(undefined *)(param_1 + 0x14300);
  4892.             auVar58 = SUB1614(auVar53 >> 0x10,0);
  4893.             sVar12 = *psVar32;
  4894.                     /* WARNING: Load size is inaccurate */
  4895.             auVar54 = *(undefined *)(puVar15 + 4);
  4896.                     /* WARNING: Load size is inaccurate */
  4897.             auVar55 = *(undefined *)puVar15;
  4898.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x14310),auVar54);
  4899.             auVar69 = pmaddwd(auVar53,auVar55);
  4900.             sVar17 = sVar12 - (short)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  4901.                                       SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  4902.                                       SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x800
  4903.                                       + SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >>0xc
  4904.                                      );
  4905.             if (sVar17 != 0) {
  4906.               uVar52 = CONCAT22(sVar17,sVar17);
  4907.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  4908.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4909.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4910.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4911.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4912.                                                                      CONCAT26(-SUB162(auVar53 >>
  4913.                                                                                       0x30,0),
  4914.                                                                               CONCAT24(-SUB162(
  4915.                                                   auVar53 >> 0x20,0),
  4916.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4917.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4918.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4919.               auVar65 = (auVar53 | auVar73) & auVar65;
  4920.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  4921.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  4922.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  4923.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  4924.                                           uVar52));
  4925.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  4926.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  4927.               *puVar15 = uVar52;
  4928.               puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  4929.               puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  4930.               puVar15[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  4931.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  4932.               ;
  4933.                     /* WARNING: Load size is inaccurate */
  4934.               auVar53 = *(undefined *)(param_1 + 0x14310);
  4935.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  4936.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  4937.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  4938.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  4939.                                                                      CONCAT26(-SUB162(auVar53 >>
  4940.                                                                                       0x30,0),
  4941.                                                                               CONCAT24(-SUB162(
  4942.                                                   auVar53 >> 0x20,0),
  4943.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  4944.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  4945.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  4946.               auVar55 = (auVar53 | auVar73) & auVar55;
  4947.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar54 >> 0x10,0),
  4948.                                 SUB162(auVar55,0) + SUB162(auVar54,0));
  4949.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar54 >> 0x30,0),
  4950.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar54 >> 0x20,0),
  4951.                                           uVar52));
  4952.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  4953.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  4954.               puVar15[4] = uVar52;
  4955.               puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  4956.               puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  4957.               puVar15[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  4958.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  4959.               ;
  4960.               puVar15 = *(undefined4 **)(param_1 + 0x14360);
  4961.                     /* WARNING: Load size is inaccurate */
  4962.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x14300) >> 0x10,0);
  4963.                     /* WARNING: Load size is inaccurate */
  4964.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x14310) >> 0x10,0);
  4965.             }
  4966.             uVar5 = *(undefined2 *)(param_1 + 0x14310);
  4967.             *(undefined4 *)(param_1 + 0x14300) = SUB144(auVar58,0);
  4968.             *(undefined4 *)(param_1 + 0x14304) = SUB144(auVar58 >> 0x20,0);
  4969.             *(undefined4 *)(param_1 + 0x14308) = SUB144(auVar58 >> 0x40,0);
  4970.             *(uint *)(param_1 + 0x1430c) = SUB144(auVar58 >> 0x60,0);
  4971.                     /* WARNING: Load size is inaccurate */
  4972.             auVar53 = *(undefined *)(param_1 + 0x14370);
  4973.             auVar58 = SUB1614(auVar53 >> 0x10,0);
  4974.             *(undefined4 *)(param_1 + 0x14310) = SUB144(auVar70,0);
  4975.             *(undefined4 *)(param_1 + 0x14314) = SUB144(auVar70 >> 0x20,0);
  4976.             *(undefined4 *)(param_1 + 0x14318) = SUB144(auVar70 >> 0x40,0);
  4977.             *(uint *)(param_1 + 0x1431c) = SUB144(auVar70 >> 0x60,0);
  4978.                     /* WARNING: Load size is inaccurate */
  4979.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x14380) >> 0x10,0);
  4980.             *(short *)(param_1 + 0x1431a) = *(short *)(param_1 + 0x1431a) - sVar12;
  4981.             *(short *)(param_1 + 0x1431e) = sVar12;
  4982.             *(undefined2 *)(param_1 + 0x1430e) = uVar5;
  4983.             puVar16 = *(undefined4 **)(param_1 + 0x143d0);
  4984.             *(longlong *)(param_1 + 0x14360) =
  4985.                  ((ulonglong)(puVar15 == (undefined4 *)(param_1 + 0x14320)) + 1) * 0x20 + lVar14;
  4986.                     /* WARNING: Load size is inaccurate */
  4987.             auVar54 = *(undefined *)(puVar16 + 4);
  4988.                     /* WARNING: Load size is inaccurate */
  4989.             auVar55 = *(undefined *)puVar16;
  4990.             auVar65 = pmaddwd(*(undefined *)(param_1 + 0x14380),auVar54);
  4991.             auVar69 = pmaddwd(auVar53,auVar55);
  4992.             sVar12 = sVar17 - (short)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  4993.                                       SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  4994.                                       SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200
  4995.                                       + SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >>10)
  4996.             ;
  4997.             if (sVar12 != 0) {
  4998.               uVar52 = CONCAT22(sVar12,sVar12);
  4999.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  5000.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5001.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5002.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5003.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5004.                                                                      CONCAT26(-SUB162(auVar53 >>
  5005.                                                                                       0x30,0),
  5006.                                                                               CONCAT24(-SUB162(
  5007.                                                   auVar53 >> 0x20,0),
  5008.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5009.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  5010.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  5011.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  5012.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar65 >> 0x10,0),
  5013.                                 SUB162(auVar55,0) + SUB162(auVar65,0));
  5014.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar65 >> 0x30,0),
  5015.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar65 >> 0x20,0),
  5016.                                           uVar52));
  5017.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  5018.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  5019.               *puVar16 = uVar52;
  5020.               puVar16[1] = (int)((ulonglong)_uVar52 >> 0x20);
  5021.               puVar16[2] = SUB124(_uVar52 >> 0x40,0);
  5022.               puVar16[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  5023.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  5024.               ;
  5025.                     /* WARNING: Load size is inaccurate */
  5026.               auVar53 = *(undefined *)(param_1 + 0x14380);
  5027.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5028.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5029.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5030.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5031.                                                                      CONCAT26(-SUB162(auVar53 >>
  5032.                                                                                       0x30,0),
  5033.                                                                               CONCAT24(-SUB162(
  5034.                                                   auVar53 >> 0x20,0),
  5035.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5036.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  5037.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  5038.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  5039.               uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar54 >> 0x10,0),
  5040.                                 SUB162(auVar55,0) + SUB162(auVar54,0));
  5041.               _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar54 >> 0x30,0),
  5042.                                  CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar54 >> 0x20,0),
  5043.                                           uVar52));
  5044.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  5045.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  5046.               puVar16[4] = uVar52;
  5047.               puVar16[5] = (int)((ulonglong)_uVar52 >> 0x20);
  5048.               puVar16[6] = SUB124(_uVar52 >> 0x40,0);
  5049.               puVar16[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  5050.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  5051.               ;
  5052.               puVar16 = *(undefined4 **)(param_1 + 0x143d0);
  5053.                     /* WARNING: Load size is inaccurate */
  5054.               auVar58 = SUB1614(*(undefined *)(param_1 + 0x14370) >> 0x10,0);
  5055.                     /* WARNING: Load size is inaccurate */
  5056.               auVar70 = SUB1614(*(undefined *)(param_1 + 0x14380) >> 0x10,0);
  5057.             }
  5058.             uVar5 = *(undefined2 *)(param_1 + 0x14380);
  5059.             *(undefined4 *)(param_1 + 0x14370) = SUB144(auVar58,0);
  5060.             *(undefined4 *)(param_1 + 0x14374) = SUB144(auVar58 >> 0x20,0);
  5061.             *(undefined4 *)(param_1 + 0x14378) = SUB144(auVar58 >> 0x40,0);
  5062.             *(uint *)(param_1 + 0x1437c) = SUB144(auVar58 >> 0x60,0);
  5063.             *(undefined4 *)(param_1 + 0x14380) = SUB144(auVar70,0);
  5064.             *(undefined4 *)(param_1 + 0x14384) = SUB144(auVar70 >> 0x20,0);
  5065.             *(undefined4 *)(param_1 + 0x14388) = SUB144(auVar70 >> 0x40,0);
  5066.             *(uint *)(param_1 + 0x1438c) = SUB144(auVar70 >> 0x60,0);
  5067.             *(short *)(param_1 + 0x1438a) = *(short *)(param_1 + 0x1438a) - sVar17;
  5068.             *(short *)(param_1 + 0x1438e) = sVar17;
  5069.             *(undefined2 *)(param_1 + 0x1437e) = uVar5;
  5070.             *(longlong *)(param_1 + 0x143d0) =
  5071.                  ((ulonglong)(puVar16 == (undefined4 *)(param_1 + 0x14390)) + 1) * 0x20 +
  5072.                  param_1 + 0x14370;
  5073.             uVar13 = *(uint *)(param_1 + 0x14aa0) ^ 1;
  5074.             *(uint *)(param_1 + 0x14aa0) = uVar13;
  5075.             lVar21 = (longlong)(int)uVar13 * 0x50;
  5076.             puVar15 = *(undefined4 **)(param_1 + 0x14420 + lVar21);
  5077.             puVar35 = (undefined *)(param_1 + 0x143e0 + lVar21);
  5078.                     /* WARNING: Load size is inaccurate */
  5079.             auVar53 = *(undefined *)puVar35;
  5080.                     /* WARNING: Load size is inaccurate */
  5081.             auVar54 = *(undefined *)(puVar15 + 4);
  5082.                     /* WARNING: Load size is inaccurate */
  5083.             auVar55 = *(undefined *)puVar15;
  5084.                     /* WARNING: Load size is inaccurate */
  5085.             auVar65 = pmaddwd(auVar54,*(undefined *)(puVar35 + 0x10));
  5086.             auVar69 = pmaddwd(auVar53,auVar55);
  5087.             sVar17 = sVar12 - (short)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  5088.                                       SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  5089.                                       SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200
  5090.                                       + SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >>10)
  5091.             ;
  5092.             if (sVar17 != 0) {
  5093.               uVar52 = CONCAT22(sVar17,sVar17);
  5094.               auVar69 = CONCAT412(uVar52,CONCAT48(uVar52,CONCAT44(uVar52,uVar52)));
  5095.               auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5096.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5097.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5098.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5099.                                                                      CONCAT26(-SUB162(auVar53 >>
  5100.                                                                                       0x30,0),
  5101.                                                                               CONCAT24(-SUB162(
  5102.                                                   auVar53 >> 0x20,0),
  5103.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5104.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  5105.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  5106.               auVar65 = (auVar53 | (undefined  [16])0x1000100010001) & auVar65;
  5107.               uVar52 = CONCAT22(SUB162(auVar65 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  5108.                                 SUB162(auVar65,0) + SUB162(auVar55,0));
  5109.               _uVar52 = CONCAT26(SUB162(auVar65 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  5110.                                  CONCAT24(SUB162(auVar65 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  5111.                                           uVar52));
  5112.               _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  5113.                                   CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  5114.               *puVar15 = uVar52;
  5115.               puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  5116.               puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  5117.               puVar15[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  5118.                                             CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0)
  5119.               ;
  5120.                     /* WARNING: Load size is inaccurate */
  5121.               auVar53 = *(undefined *)(puVar35 + 0x10);
  5122.               auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5123.                                         CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5124.                                                   CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5125.                                                             CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5126.                                                                      CONCAT26(-SUB162(auVar53 >>
  5127.                                                                                       0x30,0),
  5128.                                                                               CONCAT24(-SUB162(
  5129.                                                   auVar53 >> 0x20,0),
  5130.                                                   CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5131.                                                            -SUB162(auVar53,0)))))))) |auVar53,0xf);
  5132.               auVar53 = psraw(auVar53 ^ auVar69,0xf);
  5133.               auVar55 = (auVar53 | (undefined  [16])0x1000100010001) & auVar55;
  5134.               uVar52 = CONCAT22(SUB162(auVar54 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  5135.                                 SUB162(auVar54,0) + SUB162(auVar55,0));
  5136.               _uVar52 = CONCAT26(SUB162(auVar54 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  5137.                                  CONCAT24(SUB162(auVar54 >> 0x20,0) + SUB162(auVar55 >> 0x20,0),
  5138.                                           uVar52));
  5139.               _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  5140.                                   CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  5141.               puVar15[4] = uVar52;
  5142.               puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  5143.               puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  5144.               puVar15[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  5145.                                             CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >>0x60,0)
  5146.               ;
  5147.             }
  5148.             uVar5 = *(undefined2 *)(puVar35 + 0x10);
  5149.             psVar32 = psVar32 + 1;
  5150.             lVar21 = (longlong)(int)uVar13 * 0x50 + param_1;
  5151.                     /* WARNING: Load size is inaccurate */
  5152.             auVar53 = *(undefined *)(lVar21 + 0x143e0);
  5153.             *(undefined4 *)(lVar21 + 0x143e0) = SUB164(auVar53 >> 0x10,0);
  5154.             *(undefined4 *)(lVar21 + 0x143e4) = SUB164(auVar53 >> 0x30,0);
  5155.             *(undefined4 *)(lVar21 + 0x143e8) = SUB164(auVar53 >> 0x50,0);
  5156.             *(uint *)(lVar21 + 0x143ec) = SUB164(auVar53 >> 0x70,0);
  5157.                     /* WARNING: Load size is inaccurate */
  5158.             auVar53 = *(undefined *)(lVar21 + 0x143f0);
  5159.             *(undefined4 *)(lVar21 + 0x143f0) = SUB164(auVar53 >> 0x10,0);
  5160.             *(undefined4 *)(lVar21 + 0x143f4) = SUB164(auVar53 >> 0x30,0);
  5161.             *(undefined4 *)(lVar21 + 0x143f8) = SUB164(auVar53 >> 0x50,0);
  5162.             *(uint *)(lVar21 + 0x143fc) = SUB164(auVar53 >> 0x70,0);
  5163.             *(short *)(puVar35 + 0x1c) = *(short *)(puVar35 + 0x1c) - sVar12;
  5164.             *(undefined2 *)(puVar35 + 0xe) = uVar5;
  5165.             *(short *)(puVar35 + 0x1e) = sVar12;
  5166.           } while (psVar26 != psVar32);
  5167.         }
  5168.         *(int *)(param_1 + 0x14ab0) = uStack256 + 0x20;
  5169.         psVar32 = psVar26;
  5170.         do {
  5171.           uVar13 = *(uint *)(param_1 + 0x14aa0) ^ 1;
  5172.           *(uint *)(param_1 + 0x14aa0) = uVar13;
  5173.           lVar21 = (longlong)(int)uVar13;
  5174.           uVar11 = (ulonglong)*(uint *)(param_1 + 0x14780 + lVar21 * 0x310);
  5175.           uVar13 = *(uint *)(param_1 + 0x40);
  5176.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  5177.           *(uint *)(param_1 + 0x3c) = uVar13;
  5178.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  5179.           if (uVar13 < 0x10000) {
  5180.             FUN_00417f00(plVar1);
  5181.             uVar13 = *(uint *)(param_1 + 0x3c);
  5182.           }
  5183.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  5184.           lVar23 = uVar11 * 0x30 + lVar21 * 0x310 + param_1;
  5185.                     /* WARNING: Load size is inaccurate */
  5186.           auVar53 = *(undefined *)(lVar23 + 0x14480);
  5187.                     /* WARNING: Load size is inaccurate */
  5188.           auVar54 = *(undefined *)(lVar23 + 0x14490);
  5189.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  5190.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  5191.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  5192.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  5193.                                                                     sVar12,CONCAT26(SUB162(auVar53
  5194.                                                   >> 0x30,0) - sVar12,
  5195.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  5196.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  5197.                                                                     sVar12,SUB162(auVar53,0) -
  5198.                                                                            sVar12))))))),
  5199.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  5200.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  5201.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  5202.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  5203.                                                                     sVar12,CONCAT26(SUB162(auVar54
  5204.                                                   >> 0x30,0) - sVar12,
  5205.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  5206.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  5207.                                                                     sVar12,SUB162(auVar54,0) -
  5208.                                                                            sVar12))))))));
  5209.           uVar41 = pmovmskb((int)(lVar21 * 0x310),auVar53);
  5210.                     /* WARNING: Load size is inaccurate */
  5211.           auVar53 = *(undefined *)(lVar23 + 0x144a0);
  5212.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  5213.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  5214.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  5215.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  5216.                                                                     sVar12,CONCAT26(SUB162(auVar53
  5217.                                                   >> 0x30,0) - sVar12,
  5218.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  5219.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  5220.                                                                     sVar12,SUB162(auVar53,0) -
  5221.                                                                            sVar12))))))),
  5222.                              (undefined  [16])0x0);
  5223.           iVar8 = pmovmskb((int)lVar23,auVar53);
  5224.           uVar41 = iVar8 << 0x10 | uVar41;
  5225.           uVar43 = 0x1f;
  5226.           if (uVar41 != 0) {
  5227.             while (uVar41 >> uVar43 == 0) {
  5228.               uVar43 = uVar43 - 1;
  5229.             }
  5230.           }
  5231.           uVar41 = -(uVar43 ^ 0x1f) + 0x1f;
  5232.           uVar25 = (ulonglong)uVar41;
  5233.           lVar23 = lVar21 * 0x188 + uVar11 * 0x18;
  5234.           uVar50 = (uint)*(ushort *)(param_1 + 0x14300 + (lVar23 + 0xc0 + uVar25) * 2);
  5235.           *(int *)(param_1 + 0x3c) =
  5236.                (*(ushort *)
  5237.                  (param_1 + 0x14300 + (lVar23 + 0xc0 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20)) * 2)-
  5238.                uVar50) * (uVar13 >> 0xe) + (uVar13 - uVar50 & 0x3fff);
  5239.           FUN_0041e3c0((undefined4 *)(lVar21 * 0x310 + 0x180 + uVar11 * 0x30 + lVar14),uVar41);
  5240.           iVar8 = 0;
  5241.           if (*(byte *)(DAT_004315c0 + uVar25) != 0) {
  5242.             uVar11 = FUN_00417f40(plVar1,(uint)*(byte *)(DAT_004315c0 + uVar25));
  5243.             iVar8 = (int)uVar11;
  5244.           }
  5245.           uVar43 = (iVar8 + (&DAT_004315f8)[uVar25]) - DAT_00431700;
  5246.           lVar23 = lVar21 * 0x310 + param_1;
  5247.           uVar13 = *(uint *)(lVar23 + 0x14780);
  5248.           if (uVar13 != 0) {
  5249.             uVar11 = FUN_00417f40(plVar1,uVar13);
  5250.             uVar43 = uVar43 << ((byte)*(undefined4 *)(lVar23 + 0x14780) & 0x1f) | (uint)uVar11;
  5251.           }
  5252.           lVar21 = lVar21 * 0x310 + param_1;
  5253.           iVar8 = *(int *)(lVar21 + 0x14780);
  5254.           uVar13 = (*(uint *)(lVar21 + 0x14784) - (*(uint *)(lVar21 + 0x14784) >> 3)) + uVar43;
  5255.           *(uint *)(lVar21 + 0x14784) = uVar13;
  5256.           uVar13 = uVar13 >> ((byte)iVar8 & 0x1f);
  5257.           if (uVar13 < 0x11) {
  5258.             if (uVar13 < 8) {
  5259.               *(int *)(lVar21 + 0x14780) = iVar8 - (iVar8 + 0x1fU >> 5);
  5260.             }
  5261.           }
  5262.           else {
  5263.             *(int *)(lVar21 + 0x14780) = iVar8 + 1;
  5264.           }
  5265.           iVar8 = *(int *)(param_1 + 0x14aa0);
  5266.           uVar13 = ~(uVar43 >> 1);
  5267.           if ((uVar43 & 1) == 0) {
  5268.             uVar13 = uVar43 >> 1;
  5269.           }
  5270.           lVar21 = (longlong)iVar8 * 0x50;
  5271.           puVar15 = *(undefined4 **)(param_1 + 0x14420 + lVar21);
  5272.           puVar35 = (undefined *)(param_1 + 0x143e0 + lVar21);
  5273.                     /* WARNING: Load size is inaccurate */
  5274.           auVar53 = *(undefined *)puVar35;
  5275.                     /* WARNING: Load size is inaccurate */
  5276.           auVar54 = *(undefined *)(puVar15 + 4);
  5277.                     /* WARNING: Load size is inaccurate */
  5278.           auVar55 = *(undefined *)puVar15;
  5279.                     /* WARNING: Load size is inaccurate */
  5280.           auVar65 = pmaddwd(auVar54,*(undefined *)(puVar35 + 0x10));
  5281.           auVar69 = pmaddwd(auVar53,auVar55);
  5282.           uVar43 = (SUB164(auVar65,0) + SUB164(auVar69,0) +
  5283.                     SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  5284.                     SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200 +
  5285.                     SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >> 10) + uVar13;
  5286.           if ((short)uVar13 != 0) {
  5287.             uVar13 = uVar13 & 0xffff | uVar13 << 0x10;
  5288.             auVar69 = CONCAT412(uVar13,CONCAT48(uVar13,CONCAT44(uVar13,uVar13)));
  5289.             auVar65 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5290.                                       CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5291.                                                 CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5292.                                                           CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5293.                                                                    CONCAT26(-SUB162(auVar53 >>0x30,
  5294.                                                                                     0),
  5295.                                                                             CONCAT24(-SUB162(auVar53
  5296.                                                                                              >> 0x20
  5297.                                                   ,0),CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5298.                                                                -SUB162(auVar53,0)))))))) | auVar53,
  5299.                             0xf);
  5300.             auVar53 = psraw(auVar53 ^ auVar69,0xf);
  5301.             auVar65 = (auVar53 | auVar68) & auVar65;
  5302.             uVar52 = CONCAT22(SUB162(auVar65 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  5303.                               SUB162(auVar65,0) + SUB162(auVar55,0));
  5304.             _uVar52 = CONCAT26(SUB162(auVar65 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  5305.                                CONCAT24(SUB162(auVar65 >> 0x20,0) + SUB162(auVar55 >>0x20,0),uVar52
  5306.                                        ));
  5307.             _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  5308.                                 CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  5309.             *puVar15 = uVar52;
  5310.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  5311.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  5312.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  5313.                                           CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >> 0x60,0);
  5314.                     /* WARNING: Load size is inaccurate */
  5315.             auVar53 = *(undefined *)(puVar35 + 0x10);
  5316.             auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5317.                                       CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5318.                                                 CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5319.                                                           CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5320.                                                                    CONCAT26(-SUB162(auVar53 >>0x30,
  5321.                                                                                     0),
  5322.                                                                             CONCAT24(-SUB162(auVar53
  5323.                                                                                              >> 0x20
  5324.                                                   ,0),CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5325.                                                                -SUB162(auVar53,0)))))))) | auVar53,
  5326.                             0xf);
  5327.             auVar53 = psraw(auVar53 ^ auVar69,0xf);
  5328.             auVar55 = (auVar53 | auVar68) & auVar55;
  5329.             uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar54 >> 0x10,0),
  5330.                               SUB162(auVar55,0) + SUB162(auVar54,0));
  5331.             _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar54 >> 0x30,0),
  5332.                                CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar54 >>0x20,0),uVar52
  5333.                                        ));
  5334.             _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  5335.                                 CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  5336.             puVar15[4] = uVar52;
  5337.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  5338.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  5339.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  5340.                                           CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >> 0x60,0);
  5341.           }
  5342.           uVar5 = *(undefined2 *)(puVar35 + 0x10);
  5343.           lVar21 = (longlong)iVar8 * 0x50 + param_1;
  5344.                     /* WARNING: Load size is inaccurate */
  5345.           auVar53 = *(undefined *)(lVar21 + 0x143e0);
  5346.           *(undefined4 *)(lVar21 + 0x143e0) = SUB164(auVar53 >> 0x10,0);
  5347.           *(undefined4 *)(lVar21 + 0x143e4) = SUB164(auVar53 >> 0x30,0);
  5348.           *(undefined4 *)(lVar21 + 0x143e8) = SUB164(auVar53 >> 0x50,0);
  5349.           *(uint *)(lVar21 + 0x143ec) = SUB164(auVar53 >> 0x70,0);
  5350.                     /* WARNING: Load size is inaccurate */
  5351.           auVar53 = *(undefined *)(lVar21 + 0x143f0);
  5352.           *(undefined4 *)(lVar21 + 0x143f0) = SUB164(auVar53 >> 0x10,0);
  5353.           *(undefined4 *)(lVar21 + 0x143f4) = SUB164(auVar53 >> 0x30,0);
  5354.           *(undefined4 *)(lVar21 + 0x143f8) = SUB164(auVar53 >> 0x50,0);
  5355.           *(uint *)(lVar21 + 0x143fc) = SUB164(auVar53 >> 0x70,0);
  5356.           puVar15 = *(undefined4 **)(param_1 + 0x143d0);
  5357.           sVar12 = (short)uVar43;
  5358.           *(short *)(puVar35 + 0x1c) = *(short *)(puVar35 + 0x1c) - sVar12;
  5359.           *(undefined2 *)(puVar35 + 0xe) = uVar5;
  5360.           *(short *)(puVar35 + 0x1e) = sVar12;
  5361.                     /* WARNING: Load size is inaccurate */
  5362.           auVar70 = SUB1614(*(undefined *)(param_1 + 0x14380) >> 0x10,0);
  5363.                     /* WARNING: Load size is inaccurate */
  5364.           auVar53 = *(undefined *)(param_1 + 0x14370);
  5365.           auVar58 = SUB1614(auVar53 >> 0x10,0);
  5366.                     /* WARNING: Load size is inaccurate */
  5367.           auVar54 = *(undefined *)(puVar15 + 4);
  5368.                     /* WARNING: Load size is inaccurate */
  5369.           auVar55 = *(undefined *)puVar15;
  5370.           auVar65 = pmaddwd(*(undefined *)(param_1 + 0x14380),auVar54);
  5371.           auVar69 = pmaddwd(auVar53,auVar55);
  5372.           uVar13 = (SUB164(auVar65,0) + SUB164(auVar69,0) +
  5373.                     SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  5374.                     SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x200 +
  5375.                     SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >> 10) + uVar43;
  5376.           if (sVar12 != 0) {
  5377.             uVar43 = uVar43 & 0xffff | uVar43 * 0x10000;
  5378.             auVar65 = CONCAT412(uVar43,CONCAT48(uVar43,CONCAT44(uVar43,uVar43)));
  5379.             auVar69 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5380.                                       CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5381.                                                 CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5382.                                                           CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5383.                                                                    CONCAT26(-SUB162(auVar53 >>0x30,
  5384.                                                                                     0),
  5385.                                                                             CONCAT24(-SUB162(auVar53
  5386.                                                                                              >> 0x20
  5387.                                                   ,0),CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5388.                                                                -SUB162(auVar53,0)))))))) | auVar53,
  5389.                             0xf);
  5390.             auVar53 = psraw(auVar53 ^ auVar65,0xf);
  5391.             auVar69 = (auVar53 | auVar72) & auVar69;
  5392.             uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar69 >> 0x10,0),
  5393.                               SUB162(auVar55,0) + SUB162(auVar69,0));
  5394.             _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar69 >> 0x30,0),
  5395.                                CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar69 >>0x20,0),uVar52
  5396.                                        ));
  5397.             _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  5398.                                 CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  5399.             *puVar15 = uVar52;
  5400.             puVar15[1] = (int)((ulonglong)_uVar52 >> 0x20);
  5401.             puVar15[2] = SUB124(_uVar52 >> 0x40,0);
  5402.             puVar15[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  5403.                                           CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >> 0x60,0);
  5404.                     /* WARNING: Load size is inaccurate */
  5405.             auVar53 = *(undefined *)(param_1 + 0x14380);
  5406.             auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5407.                                       CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5408.                                                 CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5409.                                                           CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5410.                                                                    CONCAT26(-SUB162(auVar53 >>0x30,
  5411.                                                                                     0),
  5412.                                                                             CONCAT24(-SUB162(auVar53
  5413.                                                                                              >> 0x20
  5414.                                                   ,0),CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5415.                                                                -SUB162(auVar53,0)))))))) | auVar53,
  5416.                             0xf);
  5417.             auVar53 = psraw(auVar53 ^ auVar65,0xf);
  5418.             auVar55 = (auVar53 | auVar72) & auVar55;
  5419.             uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar54 >> 0x10,0),
  5420.                               SUB162(auVar55,0) + SUB162(auVar54,0));
  5421.             _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar54 >> 0x30,0),
  5422.                                CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar54 >>0x20,0),uVar52
  5423.                                        ));
  5424.             _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  5425.                                 CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  5426.             puVar15[4] = uVar52;
  5427.             puVar15[5] = (int)((ulonglong)_uVar52 >> 0x20);
  5428.             puVar15[6] = SUB124(_uVar52 >> 0x40,0);
  5429.             puVar15[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  5430.                                           CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >> 0x60,0);
  5431.             puVar15 = *(undefined4 **)(param_1 + 0x143d0);
  5432.                     /* WARNING: Load size is inaccurate */
  5433.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x14370) >> 0x10,0);
  5434.                     /* WARNING: Load size is inaccurate */
  5435.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x14380) >> 0x10,0);
  5436.           }
  5437.           uVar5 = *(undefined2 *)(param_1 + 0x14380);
  5438.           *(undefined4 *)(param_1 + 0x14370) = SUB144(auVar58,0);
  5439.           *(undefined4 *)(param_1 + 0x14374) = SUB144(auVar58 >> 0x20,0);
  5440.           *(undefined4 *)(param_1 + 0x14378) = SUB144(auVar58 >> 0x40,0);
  5441.           *(uint *)(param_1 + 0x1437c) = SUB144(auVar58 >> 0x60,0);
  5442.                     /* WARNING: Load size is inaccurate */
  5443.           auVar58 = SUB1614(*(undefined *)(param_1 + 0x14310) >> 0x10,0);
  5444.           *(undefined4 *)(param_1 + 0x14380) = SUB144(auVar70,0);
  5445.           *(undefined4 *)(param_1 + 0x14384) = SUB144(auVar70 >> 0x20,0);
  5446.           *(undefined4 *)(param_1 + 0x14388) = SUB144(auVar70 >> 0x40,0);
  5447.           *(uint *)(param_1 + 0x1438c) = SUB144(auVar70 >> 0x60,0);
  5448.                     /* WARNING: Load size is inaccurate */
  5449.           auVar53 = *(undefined *)(param_1 + 0x14300);
  5450.           auVar70 = SUB1614(auVar53 >> 0x10,0);
  5451.           sVar12 = (short)uVar13;
  5452.           *(short *)(param_1 + 0x1438a) = *(short *)(param_1 + 0x1438a) - sVar12;
  5453.           *(short *)(param_1 + 0x1438e) = sVar12;
  5454.           *(undefined2 *)(param_1 + 0x1437e) = uVar5;
  5455.           puVar16 = *(undefined4 **)(param_1 + 0x14360);
  5456.           *(longlong *)(param_1 + 0x143d0) =
  5457.                ((ulonglong)(puVar15 == (undefined4 *)(param_1 + 0x14390)) + 1) * 0x20 +
  5458.                param_1 + 0x14370;
  5459.                     /* WARNING: Load size is inaccurate */
  5460.           auVar54 = *(undefined *)(puVar16 + 4);
  5461.                     /* WARNING: Load size is inaccurate */
  5462.           auVar55 = *(undefined *)puVar16;
  5463.           auVar65 = pmaddwd(*(undefined *)(param_1 + 0x14310),auVar54);
  5464.           auVar69 = pmaddwd(auVar53,auVar55);
  5465.           sVar17 = (short)(SUB164(auVar65,0) + SUB164(auVar69,0) +
  5466.                            SUB164(auVar65 >> 0x20,0) + SUB164(auVar69 >> 0x20,0) +
  5467.                            SUB164(auVar65 >> 0x40,0) + SUB164(auVar69 >> 0x40,0) + 0x800 +
  5468.                            SUB164(auVar65 >> 0x60,0) + SUB164(auVar69 >> 0x60,0) >> 0xc) + sVar12;
  5469.           if (sVar12 != 0) {
  5470.             uVar13 = uVar13 & 0xffff | uVar13 * 0x10000;
  5471.             auVar65 = CONCAT412(uVar13,CONCAT48(uVar13,CONCAT44(uVar13,uVar13)));
  5472.             auVar69 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5473.                                       CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5474.                                                 CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5475.                                                           CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5476.                                                                    CONCAT26(-SUB162(auVar53 >>0x30,
  5477.                                                                                     0),
  5478.                                                                             CONCAT24(-SUB162(auVar53
  5479.                                                                                              >> 0x20
  5480.                                                   ,0),CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5481.                                                                -SUB162(auVar53,0)))))))) | auVar53,
  5482.                             0xf);
  5483.             auVar53 = psraw(auVar53 ^ auVar65,0xf);
  5484.             auVar69 = (auVar53 | auVar71) & auVar69;
  5485.             uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + SUB162(auVar69 >> 0x10,0),
  5486.                               SUB162(auVar55,0) + SUB162(auVar69,0));
  5487.             _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + SUB162(auVar69 >> 0x30,0),
  5488.                                CONCAT24(SUB162(auVar55 >> 0x20,0) + SUB162(auVar69 >>0x20,0),uVar52
  5489.                                        ));
  5490.             _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0),
  5491.                                 CONCAT28(SUB162(auVar55 >> 0x40,0),_uVar52));
  5492.             *puVar16 = uVar52;
  5493.             puVar16[1] = (int)((ulonglong)_uVar52 >> 0x20);
  5494.             puVar16[2] = SUB124(_uVar52 >> 0x40,0);
  5495.             puVar16[3] = SUB164(CONCAT214(SUB162(auVar55 >> 0x70,0),
  5496.                                           CONCAT212(SUB162(auVar55 >> 0x60,0),_uVar52)) >> 0x60,0);
  5497.                     /* WARNING: Load size is inaccurate */
  5498.             auVar53 = *(undefined *)(param_1 + 0x14310);
  5499.             auVar55 = psraw(CONCAT214(-SUB162(auVar53 >> 0x70,0),
  5500.                                       CONCAT212(-SUB162(auVar53 >> 0x60,0),
  5501.                                                 CONCAT210(-SUB162(auVar53 >> 0x50,0),
  5502.                                                           CONCAT28(-SUB162(auVar53 >> 0x40,0),
  5503.                                                                    CONCAT26(-SUB162(auVar53 >>0x30,
  5504.                                                                                     0),
  5505.                                                                             CONCAT24(-SUB162(auVar53
  5506.                                                                                              >> 0x20
  5507.                                                   ,0),CONCAT22(-SUB162(auVar53 >> 0x10,0),
  5508.                                                                -SUB162(auVar53,0)))))))) | auVar53,
  5509.                             0xf);
  5510.             auVar53 = psraw(auVar53 ^ auVar65,0xf);
  5511.             auVar55 = (auVar53 | auVar71) & auVar55;
  5512.             uVar52 = CONCAT22(SUB162(auVar54 >> 0x10,0) + SUB162(auVar55 >> 0x10,0),
  5513.                               SUB162(auVar54,0) + SUB162(auVar55,0));
  5514.             _uVar52 = CONCAT26(SUB162(auVar54 >> 0x30,0) + SUB162(auVar55 >> 0x30,0),
  5515.                                CONCAT24(SUB162(auVar54 >> 0x20,0) + SUB162(auVar55 >>0x20,0),uVar52
  5516.                                        ));
  5517.             _uVar52 = CONCAT210(SUB162(auVar54 >> 0x50,0),
  5518.                                 CONCAT28(SUB162(auVar54 >> 0x40,0),_uVar52));
  5519.             puVar16[4] = uVar52;
  5520.             puVar16[5] = (int)((ulonglong)_uVar52 >> 0x20);
  5521.             puVar16[6] = SUB124(_uVar52 >> 0x40,0);
  5522.             puVar16[7] = SUB164(CONCAT214(SUB162(auVar54 >> 0x70,0),
  5523.                                           CONCAT212(SUB162(auVar54 >> 0x60,0),_uVar52)) >> 0x60,0);
  5524.             puVar16 = *(undefined4 **)(param_1 + 0x14360);
  5525.                     /* WARNING: Load size is inaccurate */
  5526.             auVar70 = SUB1614(*(undefined *)(param_1 + 0x14300) >> 0x10,0);
  5527.                     /* WARNING: Load size is inaccurate */
  5528.             auVar58 = SUB1614(*(undefined *)(param_1 + 0x14310) >> 0x10,0);
  5529.           }
  5530.           uVar5 = *(undefined2 *)(param_1 + 0x14310);
  5531.           *(undefined4 *)(param_1 + 0x14300) = SUB144(auVar70,0);
  5532.           *(undefined4 *)(param_1 + 0x14304) = SUB144(auVar70 >> 0x20,0);
  5533.           *(undefined4 *)(param_1 + 0x14308) = SUB144(auVar70 >> 0x40,0);
  5534.           *(uint *)(param_1 + 0x1430c) = SUB144(auVar70 >> 0x60,0);
  5535.           *(undefined4 *)(param_1 + 0x14310) = SUB144(auVar58,0);
  5536.           *(undefined4 *)(param_1 + 0x14314) = SUB144(auVar58 >> 0x20,0);
  5537.           *(undefined4 *)(param_1 + 0x14318) = SUB144(auVar58 >> 0x40,0);
  5538.           *(uint *)(param_1 + 0x1431c) = SUB144(auVar58 >> 0x60,0);
  5539.           *(short *)(param_1 + 0x1431a) = *(short *)(param_1 + 0x1431a) - sVar17;
  5540.           *(short *)(param_1 + 0x1431e) = sVar17;
  5541.           *(undefined2 *)(param_1 + 0x1430e) = uVar5;
  5542.           psVar34 = psVar32 + 1;
  5543.           *(longlong *)(param_1 + 0x14360) =
  5544.                ((ulonglong)(puVar16 == (undefined4 *)(param_1 + 0x14320)) + 1) * 0x20 + lVar14;
  5545.           *psVar32 = sVar17;
  5546.           psVar32 = psVar34;
  5547.         } while (psVar26 + 0x10 != psVar34);
  5548.         goto LAB_00407f20;
  5549.       case -0x11:
  5550.         pbVar48 = (byte *)((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) +
  5551.                           *(longlong *)(param_1 + 0x58));
  5552.         if (*(uint *)(param_1 + 0x14f00) != uStack256) {
  5553.           uVar13 = uStack256 - *(uint *)(param_1 + 0x14f00);
  5554.                     /* WARNING: Load size is inaccurate */
  5555.           auVar53 = *(undefined *)(param_1 + 0x14ac0);
  5556.           if (0x100 < uVar13) {
  5557.             uVar13 = 0x100;
  5558.           }
  5559.                     /* WARNING: Load size is inaccurate */
  5560.           auVar54 = *(undefined *)(param_1 + 0x14ad0);
  5561.           pbVar39 = pbVar48 + (longlong)(int)-uVar13;
  5562.           do {
  5563.             bVar49 = *pbVar39;
  5564.             pbVar39 = pbVar39 + 1;
  5565.             uVar11 = (ulonglong)(bVar49 >> 4);
  5566.             puVar35 = (undefined *)((ulonglong)((uint)bVar49 & 0xf) * 0x40 + lVar14);
  5567.             lVar21 = uVar11 * 0x20 + param_1;
  5568.             puVar46 = (undefined *)(uVar11 * 0x40 + lVar14);
  5569.                     /* WARNING: Load size is inaccurate */
  5570.             auVar55 = *(undefined *)puVar46;
  5571.             sVar12 = SUB162(auVar53 >> 0x10,0);
  5572.             sVar17 = SUB162(auVar53 >> 0x20,0);
  5573.             sVar57 = SUB162(auVar53 >> 0x30,0);
  5574.             sVar59 = SUB162(auVar53 >> 0x40,0);
  5575.             sVar60 = SUB162(auVar53 >> 0x50,0);
  5576.             sVar61 = SUB162(auVar53 >> 0x60,0);
  5577.             sVar62 = SUB162(auVar53 >> 0x70,0);
  5578.             auVar55 = psraw(CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar62,
  5579.                                       CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar61,
  5580.                                                 CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar60,
  5581.                                                           CONCAT28(SUB162(auVar55 >> 0x40,0) -
  5582.                                                                    sVar59,CONCAT26(SUB162(auVar55>>
  5583.                                                                                           0x30,0) -
  5584.                                                                                    sVar57,CONCAT24(
  5585.                                                   SUB162(auVar55 >> 0x20,0) - sVar17,
  5586.                                                   CONCAT22(SUB162(auVar55 >> 0x10,0) - sVar12,
  5587.                                                            SUB162(auVar55,0) -SUB162(auVar53,0)))))
  5588.                                                   ))),7);
  5589.             uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + sVar12,
  5590.                               SUB162(auVar55,0) + SUB162(auVar53,0));
  5591.             _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + sVar57,
  5592.                                CONCAT24(SUB162(auVar55 >> 0x20,0) + sVar17,uVar52));
  5593.             _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0) + sVar60,
  5594.                                 CONCAT28(SUB162(auVar55 >> 0x40,0) + sVar59,_uVar52));
  5595.             auVar53 = CONCAT214(SUB162(auVar55 >> 0x70,0) + sVar62,
  5596.                                 CONCAT212(SUB162(auVar55 >> 0x60,0) + sVar61,_uVar52));
  5597.             *(undefined4 *)(param_1 + 0x14ac0) = uVar52;
  5598.             *(undefined4 *)(param_1 + 0x14ac4) = (int)((ulonglong)_uVar52 >> 0x20);
  5599.             *(undefined4 *)(param_1 + 0x14ac8) = SUB124(_uVar52 >> 0x40,0);
  5600.             *(undefined4 *)(param_1 + 0x14acc) = SUB164(auVar53 >> 0x60,0);
  5601.                     /* WARNING: Load size is inaccurate */
  5602.             auVar55 = *(undefined *)(puVar46 + 0x10);
  5603.             sVar12 = SUB162(auVar54 >> 0x10,0);
  5604.             sVar17 = SUB162(auVar54 >> 0x20,0);
  5605.             sVar57 = SUB162(auVar54 >> 0x30,0);
  5606.             sVar59 = SUB162(auVar54 >> 0x40,0);
  5607.             sVar60 = SUB162(auVar54 >> 0x50,0);
  5608.             sVar61 = SUB162(auVar54 >> 0x60,0);
  5609.             sVar62 = SUB162(auVar54 >> 0x70,0);
  5610.             auVar55 = psraw(CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar62,
  5611.                                       CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar61,
  5612.                                                 CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar60,
  5613.                                                           CONCAT28(SUB162(auVar55 >> 0x40,0) -
  5614.                                                                    sVar59,CONCAT26(SUB162(auVar55>>
  5615.                                                                                           0x30,0) -
  5616.                                                                                    sVar57,CONCAT24(
  5617.                                                   SUB162(auVar55 >> 0x20,0) - sVar17,
  5618.                                                   CONCAT22(SUB162(auVar55 >> 0x10,0) - sVar12,
  5619.                                                            SUB162(auVar55,0) -SUB162(auVar54,0)))))
  5620.                                                   ))),7);
  5621.             uVar52 = CONCAT22(SUB162(auVar55 >> 0x10,0) + sVar12,
  5622.                               SUB162(auVar55,0) + SUB162(auVar54,0));
  5623.             _uVar52 = CONCAT26(SUB162(auVar55 >> 0x30,0) + sVar57,
  5624.                                CONCAT24(SUB162(auVar55 >> 0x20,0) + sVar17,uVar52));
  5625.             _uVar52 = CONCAT210(SUB162(auVar55 >> 0x50,0) + sVar60,
  5626.                                 CONCAT28(SUB162(auVar55 >> 0x40,0) + sVar59,_uVar52));
  5627.             auVar54 = CONCAT214(SUB162(auVar55 >> 0x70,0) + sVar62,
  5628.                                 CONCAT212(SUB162(auVar55 >> 0x60,0) + sVar61,_uVar52));
  5629.             *(undefined4 *)(param_1 + 0x14ad0) = uVar52;
  5630.             *(undefined4 *)(param_1 + 0x14ad4) = (int)((ulonglong)_uVar52 >> 0x20);
  5631.             *(undefined4 *)(param_1 + 0x14ad8) = SUB124(_uVar52 >> 0x40,0);
  5632.             *(undefined4 *)(param_1 + 0x14adc) = SUB164(auVar54 >> 0x60,0);
  5633.                     /* WARNING: Load size is inaccurate */
  5634.             auVar55 = *(undefined *)puVar35;
  5635.                     /* WARNING: Load size is inaccurate */
  5636.             auVar65 = *(undefined *)(lVar21 + 0x14ae0);
  5637.             sVar12 = SUB162(auVar65 >> 0x10,0);
  5638.             sVar17 = SUB162(auVar65 >> 0x20,0);
  5639.             sVar57 = SUB162(auVar65 >> 0x30,0);
  5640.             sVar59 = SUB162(auVar65 >> 0x40,0);
  5641.             sVar60 = SUB162(auVar65 >> 0x50,0);
  5642.             sVar61 = SUB162(auVar65 >> 0x60,0);
  5643.             sVar62 = SUB162(auVar65 >> 0x70,0);
  5644.             auVar55 = psraw(CONCAT214(SUB162(auVar55 >> 0x70,0) - sVar62,
  5645.                                       CONCAT212(SUB162(auVar55 >> 0x60,0) - sVar61,
  5646.                                                 CONCAT210(SUB162(auVar55 >> 0x50,0) - sVar60,
  5647.                                                           CONCAT28(SUB162(auVar55 >> 0x40,0) -
  5648.                                                                    sVar59,CONCAT26(SUB162(auVar55>>
  5649.                                                                                           0x30,0) -
  5650.                                                                                    sVar57,CONCAT24(
  5651.                                                   SUB162(auVar55 >> 0x20,0) - sVar17,
  5652.                                                   CONCAT22(SUB162(auVar55 >> 0x10,0) - sVar12,
  5653.                                                            SUB162(auVar55,0) -SUB162(auVar65,0)))))
  5654.                                                   ))),7);
  5655.             uVar52 = CONCAT22(sVar12 + SUB162(auVar55 >> 0x10,0),
  5656.                               SUB162(auVar65,0) + SUB162(auVar55,0));
  5657.             _uVar52 = CONCAT26(sVar57 + SUB162(auVar55 >> 0x30,0),
  5658.                                CONCAT24(sVar17 + SUB162(auVar55 >> 0x20,0),uVar52));
  5659.             _uVar52 = CONCAT210(sVar60 + SUB162(auVar55 >> 0x50,0),
  5660.                                 CONCAT28(sVar59 + SUB162(auVar55 >> 0x40,0),_uVar52));
  5661.             *(undefined4 *)(lVar21 + 0x14ae0) = uVar52;
  5662.             *(undefined4 *)(lVar21 + 0x14ae4) = (int)((ulonglong)_uVar52 >> 0x20);
  5663.             *(undefined4 *)(lVar21 + 0x14ae8) = SUB124(_uVar52 >> 0x40,0);
  5664.             *(undefined4 *)(lVar21 + 0x14aec) =
  5665.                  SUB164(CONCAT214(sVar62 + SUB162(auVar55 >> 0x70,0),
  5666.                                   CONCAT212(sVar61 + SUB162(auVar55 >> 0x60,0),_uVar52)) >>0x60,0);
  5667.                     /* WARNING: Load size is inaccurate */
  5668.             auVar55 = *(undefined *)(lVar21 + 0x14af0);
  5669.                     /* WARNING: Load size is inaccurate */
  5670.             auVar65 = *(undefined *)(puVar35 + 0x10);
  5671.             sVar12 = SUB162(auVar55 >> 0x10,0);
  5672.             sVar17 = SUB162(auVar55 >> 0x20,0);
  5673.             sVar57 = SUB162(auVar55 >> 0x30,0);
  5674.             sVar59 = SUB162(auVar55 >> 0x40,0);
  5675.             sVar60 = SUB162(auVar55 >> 0x50,0);
  5676.             sVar61 = SUB162(auVar55 >> 0x60,0);
  5677.             sVar62 = SUB162(auVar55 >> 0x70,0);
  5678.             auVar65 = psraw(CONCAT214(SUB162(auVar65 >> 0x70,0) - sVar62,
  5679.                                       CONCAT212(SUB162(auVar65 >> 0x60,0) - sVar61,
  5680.                                                 CONCAT210(SUB162(auVar65 >> 0x50,0) - sVar60,
  5681.                                                           CONCAT28(SUB162(auVar65 >> 0x40,0) -
  5682.                                                                    sVar59,CONCAT26(SUB162(auVar65>>
  5683.                                                                                           0x30,0) -
  5684.                                                                                    sVar57,CONCAT24(
  5685.                                                   SUB162(auVar65 >> 0x20,0) - sVar17,
  5686.                                                   CONCAT22(SUB162(auVar65 >> 0x10,0) - sVar12,
  5687.                                                            SUB162(auVar65,0) -SUB162(auVar55,0)))))
  5688.                                                   ))),7);
  5689.             uVar52 = CONCAT22(sVar12 + SUB162(auVar65 >> 0x10,0),
  5690.                               SUB162(auVar55,0) + SUB162(auVar65,0));
  5691.             _uVar52 = CONCAT26(sVar57 + SUB162(auVar65 >> 0x30,0),
  5692.                                CONCAT24(sVar17 + SUB162(auVar65 >> 0x20,0),uVar52));
  5693.             _uVar52 = CONCAT210(sVar60 + SUB162(auVar65 >> 0x50,0),
  5694.                                 CONCAT28(sVar59 + SUB162(auVar65 >> 0x40,0),_uVar52));
  5695.             *(undefined4 *)(lVar21 + 0x14af0) = uVar52;
  5696.             *(undefined4 *)(lVar21 + 0x14af4) = (int)((ulonglong)_uVar52 >> 0x20);
  5697.             *(undefined4 *)(lVar21 + 0x14af8) = SUB124(_uVar52 >> 0x40,0);
  5698.             *(undefined4 *)(lVar21 + 0x14afc) =
  5699.                  SUB164(CONCAT214(sVar62 + SUB162(auVar65 >> 0x70,0),
  5700.                                   CONCAT212(sVar61 + SUB162(auVar65 >> 0x60,0),_uVar52)) >>0x60,0);
  5701.           } while (pbVar48 + (ulonglong)(uVar13 - 1) + (longlong)(int)-uVar13 + 1 != pbVar39);
  5702.         }
  5703.         *(int *)(param_1 + 0x14f00) = uStack256 + 0x20;
  5704.         pbVar39 = pbVar48;
  5705.         do {
  5706.           uVar13 = *(uint *)(param_1 + 0x40);
  5707.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  5708.           *(uint *)(param_1 + 0x3c) = uVar13;
  5709.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  5710.           if (uVar13 < 0x10000) {
  5711.             FUN_00417f00(plVar1);
  5712.             uVar13 = *(uint *)(param_1 + 0x3c);
  5713.           }
  5714.                     /* WARNING: Load size is inaccurate */
  5715.           auVar53 = *(undefined *)(param_1 + 0x14ac0);
  5716.                     /* WARNING: Load size is inaccurate */
  5717.           auVar54 = *(undefined *)(param_1 + 0x14ad0);
  5718.           iVar8 = (uVar13 & 0x3fff) + 1;
  5719.           sVar12 = (short)iVar8;
  5720.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  5721.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  5722.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  5723.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  5724.                                                                     sVar12,CONCAT26(SUB162(auVar53
  5725.                                                   >> 0x30,0) - sVar12,
  5726.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  5727.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  5728.                                                                     sVar12,SUB162(auVar53,0) -
  5729.                                                                            sVar12))))))),
  5730.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  5731.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  5732.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  5733.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  5734.                                                                     sVar12,CONCAT26(SUB162(auVar54
  5735.                                                   >> 0x30,0) - sVar12,
  5736.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  5737.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  5738.                                                                     sVar12,SUB162(auVar54,0) -
  5739.                                                                            sVar12))))))));
  5740.           uVar41 = pmovmskb(iVar8,auVar53);
  5741.           uVar43 = 0x1f;
  5742.           if (uVar41 != 0) {
  5743.             while (uVar41 >> uVar43 == 0) {
  5744.               uVar43 = uVar43 - 1;
  5745.             }
  5746.           }
  5747.           uVar50 = -(uVar43 ^ 0x1f) + 0x1f;
  5748.           uVar11 = (ulonglong)uVar50;
  5749.           uVar41 = (uint)*(ushort *)(param_1 + 0x14ac0 + uVar11 * 2);
  5750.           *(int *)(param_1 + 0x3c) =
  5751.                (uVar13 - uVar41 & 0x3fff) +
  5752.                (*(ushort *)(param_1 + 0x14ac0 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf) * 2) -
  5753.                 uVar41 & 0x3fff) * (uVar13 >> 0xe);
  5754.           FUN_00421ad0((undefined4 *)(param_1 + 0x14ac0),uVar50);
  5755.           uVar13 = *(uint *)(param_1 + 0x40);
  5756.           uVar52 = *(undefined4 *)(param_1 + 0x3c);
  5757.           *(uint *)(param_1 + 0x3c) = uVar13;
  5758.           *(undefined4 *)(param_1 + 0x40) = uVar52;
  5759.           if (uVar13 < 0x10000) {
  5760.             FUN_00417f00(plVar1);
  5761.             uVar13 = *(uint *)(param_1 + 0x3c);
  5762.           }
  5763.           pbVar36 = pbVar39 + 1;
  5764.           sVar12 = ((ushort)uVar13 & 0x3fff) + 1;
  5765.                     /* WARNING: Load size is inaccurate */
  5766.           auVar53 = *(undefined *)(param_1 + 0x14ac0 + (uVar11 + 1) * 0x20);
  5767.                     /* WARNING: Load size is inaccurate */
  5768.           auVar54 = *(undefined *)(param_1 + 0x14af0 + uVar11 * 0x20);
  5769.           auVar53 = packsswb(CONCAT214(SUB162(auVar53 >> 0x70,0) - sVar12,
  5770.                                        CONCAT212(SUB162(auVar53 >> 0x60,0) - sVar12,
  5771.                                                  CONCAT210(SUB162(auVar53 >> 0x50,0) - sVar12,
  5772.                                                            CONCAT28(SUB162(auVar53 >> 0x40,0) -
  5773.                                                                     sVar12,CONCAT26(SUB162(auVar53
  5774.                                                   >> 0x30,0) - sVar12,
  5775.                                                   CONCAT24(SUB162(auVar53 >> 0x20,0) - sVar12,
  5776.                                                            CONCAT22(SUB162(auVar53 >> 0x10,0) -
  5777.                                                                     sVar12,SUB162(auVar53,0) -
  5778.                                                                            sVar12))))))),
  5779.                              CONCAT214(SUB162(auVar54 >> 0x70,0) - sVar12,
  5780.                                        CONCAT212(SUB162(auVar54 >> 0x60,0) - sVar12,
  5781.                                                  CONCAT210(SUB162(auVar54 >> 0x50,0) - sVar12,
  5782.                                                            CONCAT28(SUB162(auVar54 >> 0x40,0) -
  5783.                                                                     sVar12,CONCAT26(SUB162(auVar54
  5784.                                                   >> 0x30,0) - sVar12,
  5785.                                                   CONCAT24(SUB162(auVar54 >> 0x20,0) - sVar12,
  5786.                                                            CONCAT22(SUB162(auVar54 >> 0x10,0) -
  5787.                                                                     sVar12,SUB162(auVar54,0) -
  5788.                                                                            sVar12))))))));
  5789.           uVar41 = pmovmskb((int)(uVar11 * 0x20),auVar53);
  5790.           uVar43 = 0x1f;
  5791.           if (uVar41 != 0) {
  5792.             while (uVar41 >> uVar43 == 0) {
  5793.               uVar43 = uVar43 - 1;
  5794.             }
  5795.           }
  5796.           uVar24 = -(uVar43 ^ 0x1f) + 0x1f;
  5797.           uVar41 = (uint)*(ushort *)
  5798.                           (param_1 + 0x14ac0 + ((ulonglong)uVar24 + 0x10 + uVar11 * 0x10) * 2);
  5799.           *(int *)(param_1 + 0x3c) =
  5800.                (uVar13 - uVar41 & 0x3fff) +
  5801.                (*(ushort *)
  5802.                  (param_1 + 0x14ac0 +
  5803.                  (uVar11 * 0x10 + 0x10 + (ulonglong)(-(uVar43 ^ 0x1f) + 0x20 & 0xf)) * 2) -uVar41 &
  5804.                0x3fff) * (uVar13 >> 0xe);
  5805.           FUN_00421ad0((undefined4 *)(param_1 + 0x14ac0) + (uVar11 + 1) * 8,uVar24);
  5806.           *pbVar39 = (char)uVar50 * '\x10' | (byte)uVar24;
  5807.           pbVar39 = pbVar36;
  5808.         } while (pbVar48 + 0x20 != pbVar36);
  5809. LAB_00407f20:
  5810.         uStack256 = uStack256 + 0x20;
  5811.         uVar25 = 0;
  5812.         iVar8 = 0x20;
  5813.         uVar13 = uStack256;
  5814.         goto LAB_00403130;
  5815.       case -0x10:
  5816.         puVar30 = (undefined2 *)
  5817.                   ((ulonglong)(uStack256 - *(int *)(param_1 + 0x74)) + *(longlong *)(param_1 +0x58)
  5818.                   );
  5819.         puVar29 = puVar30;
  5820.         do {
  5821.           puVar31 = puVar29 + 1;
  5822.           uVar11 = FUN_00417f40(plVar1,0x10);
  5823.           *puVar29 = (short)uVar11;
  5824.           puVar29 = puVar31;
  5825.         } while (puVar31 != puVar30 + 0x10);
  5826.         uVar25 = 0;
  5827.         iVar8 = 0x20;
  5828.         uVar13 = uStack256 + 0x20;
  5829.         goto LAB_00403130;
  5830.       }
  5831.       uVar25 = 0;
  5832.       iVar8 = 8;
  5833.       uVar13 = uStack256 + 8;
  5834. LAB_00403130:
  5835.       uStack256 = uVar13;
  5836.       uVar11 = (ulonglong)(byte)(&DAT_0042b0a0)[(ulonglong)*(uint *)(param_1 + 0xa8) + uVar25 *0xe]
  5837.       ;
  5838.       *(uint *)(param_1 + 0xa8) =
  5839.            (uint)(byte)(&DAT_0042b0a0)[(ulonglong)*(uint *)(param_1 + 0xa8) + uVar25 * 0xe];
  5840.     } while (0 < (int)((param_3 + param_2) - uStack256));
  5841.     uStack256 = uStack256 - param_2;
  5842.   }
  5843.   return (ulonglong)uStack256;
  5844. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement