Advertisement
MrCheeze

Wii VC Controller Mapping Functions

Apr 5th, 2021
2,449
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 49.07 KB | None | 0 0
  1. // controller mapping setup root function
  2. // void FUN_8000793c(void)
  3.  
  4. // copy the controller mapping from param_3
  5. // undefined4 FUN_80062db4(undefined4 param_1,undefined4 *param_2,undefined4 *param_3)
  6.  
  7. // copy the controller mapping from param_3
  8. // undefined4 FUN_80062d04(int param_1,int param_2,undefined4 *param_3)
  9.  
  10. void FUN_8000793c(void)
  11.  
  12. {
  13.   int iVar1;
  14.   int iVar2;
  15.   undefined *puVar3;
  16.   undefined4 uVar4;
  17.   uint uVar5;
  18.   uint uVar6;
  19.   undefined4 uVar7;
  20.   int iVar8;
  21.   int iVar9;
  22.   undefined4 uVar10;
  23.   undefined4 uVar11;
  24.   undefined4 uVar12;
  25.   undefined4 uVar13;
  26.   undefined4 uVar14;
  27.   undefined4 *local_58;
  28.   int local_54;
  29.   char *local_50 [20];
  30.  
  31.   iVar1 = FUN_80152e28();
  32.   puVar3 = &DAT_801a0cf0;
  33.   uVar13 = 0;
  34.   iVar8 = *(int *)(DAT_8025cfe0 + 0x10);
  35.   uVar4 = *(undefined4 *)(DAT_8025cfe0 + 0x1c);
  36.   iVar9 = -1;
  37.   uVar7 = *(undefined4 *)(DAT_8025cfe0 + 0x14);
  38.   uVar10 = 0xff;
  39.   uVar11 = 0xff;
  40.   uVar12 = 0xff;
  41.   DAT_801a0e30 = 0;
  42.   uVar14 = 0x2000;
  43.   iVar2 = 0;
  44.   do {
  45.     FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,&PTR_DAT_8016f920);
  46.     iVar2 = iVar2 + 1;
  47.     puVar3 = puVar3 + 0x50;
  48.   } while (iVar2 < 4);
  49.   iVar2 = FUN_800433ec(uVar4,iVar1 + 0xc);
  50.   if (iVar2 == 0) {
  51.     uVar14 = 0;
  52.     goto LAB_8000a090;
  53.   }
  54.   iVar2 = *(int *)(iVar1 + 0xc);
  55.   if (iVar2 == 0x4e4d564a) {
  56. LAB_800095f8:
  57.     uVar13 = 0x4000;
  58.     DAT_801a0e34 = 8;
  59.     iVar9 = 0xf;
  60.     goto LAB_80009ee8;
  61.   }
  62.   if (0x4e4d5649 < iVar2) {
  63.     if (iVar2 == 0x4e525850) {
  64. LAB_800099a0:
  65.       iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  66.       if (iVar2 == 0) {
  67.         uVar14 = 0;
  68.         goto LAB_8000a090;
  69.       }
  70.       *(undefined4 *)(local_54 + 0x10) = 0x17d6;
  71.       goto LAB_80009ee8;
  72.     }
  73.     if (0x4e52584f < iVar2) {
  74.       if (iVar2 == 0x4e575245) goto LAB_80009cc0;
  75.       if (iVar2 < 0x4e575245) {
  76.         if (iVar2 == 0x4e535150) {
  77. LAB_80009914:
  78.           iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  79.           if (iVar2 == 0) {
  80.             uVar14 = 0;
  81.             goto LAB_8000a090;
  82.           }
  83.           *(undefined4 *)(local_54 + 0x10) = 0x17d6;
  84.         }
  85.         else {
  86.           if (iVar2 < 0x4e535150) {
  87.             if (iVar2 == 0x4e534d50) {
  88. LAB_800080fc:
  89.               puVar3 = &DAT_801a0cf0;
  90.               DAT_801a0e34 = 4;
  91.               uVar14 = 0x2000;
  92.               uVar13 = 0x1000;
  93.               iVar9 = 0xf;
  94.               uVar12 = 0xbe;
  95.               uVar11 = 0xbe;
  96.               uVar10 = 0xbe;
  97.               iVar2 = FUN_8003c7e0(iVar8,0x80317938,0x5420fffe,0);
  98.               if (iVar2 == 0) {
  99.                 uVar14 = 0;
  100.                 goto LAB_8000a090;
  101.               }
  102.               if (*(int *)(iVar1 + 0xc) == 0x4e534d4a) {
  103.                 DAT_801a0e30 = 0;
  104.                 iVar2 = 0;
  105.                 uVar5 = 0;
  106.                 do {
  107.                   FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  108.                                &PTR_DAT_8016f920 + (-0x7e7e7e7f >> (uVar5 & 0x3f) & 0x7fU) *0x14);
  109.                   iVar2 = iVar2 + 1;
  110.                   DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0xff030303U;
  111.                   puVar3 = puVar3 + 0x50;
  112.                   uVar5 = uVar5 + 8;
  113.                 } while (iVar2 < 4);
  114.                 DAT_801a0e38 = 0x81818181;
  115.                 DAT_801a0e3c = -0x7e7e7e7f;
  116.                 iVar2 = FUN_8003c7e0(iVar8,0x802f2458,0x83250002,0xffffffff);
  117.                 if (iVar2 == 0) {
  118.                   uVar14 = 0;
  119.                   goto LAB_8000a090;
  120.                 }
  121.               }
  122.               else {
  123.                 DAT_801a0e30 = 0;
  124.                 iVar2 = 0;
  125.                 uVar5 = 0;
  126.                 do {
  127.                   FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  128.                                &PTR_DAT_8016f920 + (0x1010101 >> (uVar5 & 0x3f) & 0x7fU) * 0x14);
  129.                   iVar2 = iVar2 + 1;
  130.                   DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0x20202U;
  131.                   puVar3 = puVar3 + 0x50;
  132.                   uVar5 = uVar5 + 8;
  133.                 } while (iVar2 < 4);
  134.                 DAT_801a0e38 = 0x1010101;
  135.                 DAT_801a0e3c = 0x1010101;
  136.               }
  137.             }
  138.             else {
  139.               if (iVar2 < 0x4e534d50) {
  140.                 if (iVar2 == 0x4e534d45) goto LAB_800080fc;
  141.                 if (iVar2 < 0x4e534d45) {
  142.                   if (iVar2 == 0x4e53494a) {
  143.                     DAT_801a0e34 = 1;
  144.                     uVar13 = 0x8000;
  145.                     iVar9 = 0xe;
  146.                   }
  147.                 }
  148.                 else {
  149.                   if (iVar2 == 0x4e534d4a) goto LAB_800080fc;
  150.                 }
  151.               }
  152.               else {
  153.                 if ((iVar2 == 0x4e53514a) || ((iVar2 < 0x4e53514a && (iVar2 == 0x4e535145))))
  154.                 goto LAB_80009914;
  155.               }
  156.             }
  157.           }
  158.           else {
  159.             if (iVar2 != 0x4e545545) {
  160.               if (iVar2 < 0x4e545545) {
  161.                 if (iVar2 == 0x4e54454a) {
  162. LAB_80009acc:
  163.                   DAT_801a0e34 = 1;
  164.                   uVar13 = 0x8000;
  165.                   iVar9 = 0xe;
  166.                   iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  167.                   if (iVar2 == 0) {
  168.                     uVar14 = 0;
  169.                     goto LAB_8000a090;
  170.                   }
  171.                   *(undefined4 *)(local_54 + 0x10) = 0x17d7;
  172.                   iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_58,0,0);
  173.                   if (iVar2 == 0) {
  174.                     uVar14 = 0;
  175.                     goto LAB_8000a090;
  176.                   }
  177.                   local_58[0x80] = 0xac290000;
  178.                   local_58[0xa1] = 0x240b17d7;
  179.                   iVar2 = FUN_8007d6a0(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  180.                   if (iVar2 == 0) {
  181.                     uVar14 = 0;
  182.                     goto LAB_8000a090;
  183.                   }
  184.                   *local_58 = 0x17d7;
  185.                   iVar2 = FUN_8007d688(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  186.                   if (iVar2 == 0) {
  187.                     uVar14 = 0;
  188.                     goto LAB_8000a090;
  189.                   }
  190.                   *local_58 = 0xffffffff;
  191.                   iVar2 = FUN_8003c7e0(iVar8,&DAT_8000017c,0x14e80006,0);
  192.                   if (iVar2 == 0) {
  193.                     uVar14 = 0;
  194.                     goto LAB_8000a090;
  195.                   }
  196.                   iVar2 = FUN_8003c7e0(iVar8,&DAT_80000188,0x16080003,0);
  197.                   if (iVar2 == 0) {
  198.                     uVar14 = 0;
  199.                     goto LAB_8000a090;
  200.                   }
  201.                   iVar2 = FUN_8003c7e0(iVar8,0x800f04e8,0x1218fffb,0);
  202.                   if (iVar2 == 0) {
  203.                     uVar14 = 0;
  204.                     goto LAB_8000a090;
  205.                   }
  206.                 }
  207.                 else {
  208.                   if (iVar2 < 0x4e54454a) {
  209.                     if (iVar2 == 0x4e544541) goto LAB_80009acc;
  210.                   }
  211.                   else {
  212.                     if (iVar2 == 0x4e544550) goto LAB_80009acc;
  213.                   }
  214.                 }
  215.                 goto LAB_80009ee8;
  216.               }
  217.               if ((iVar2 != 0x4e545550) && ((0x4e54554f < iVar2 || (iVar2 != 0x4e54554a))))
  218.               goto LAB_80009ee8;
  219.             }
  220.             iVar2 = FUN_8003c7e0(iVar8,&LAB_8002bdd0,0xa0000000,0);
  221.             if (iVar2 == 0) {
  222.               uVar14 = 0;
  223.               goto LAB_8000a090;
  224.             }
  225.           }
  226.         }
  227.       }
  228.       else {
  229.         if (iVar2 == 0x4e59534a) {
  230. LAB_80009d28:
  231.           DAT_801a0e34 = 8;
  232.           uVar13 = 0x4000;
  233.           iVar9 = 0xf;
  234.           iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  235.           if (iVar2 == 0) {
  236.             uVar14 = 0;
  237.             goto LAB_8000a090;
  238.           }
  239.           *(undefined4 *)(local_54 + 0x10) = 0x17d8;
  240.           iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_58,0,0);
  241.           if (iVar2 == 0) {
  242.             uVar14 = 0;
  243.             goto LAB_8000a090;
  244.           }
  245.           local_58[0x59] = 0x1ec6021;
  246.           local_58[0xae] = 0x8941680c;
  247.           iVar2 = FUN_8007d6a0(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  248.           if (iVar2 == 0) {
  249.             uVar14 = 0;
  250.             goto LAB_8000a090;
  251.           }
  252.           *local_58 = 0x17d8;
  253.           iVar2 = FUN_8007d688(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  254.           if (iVar2 == 0) {
  255.             uVar14 = 0;
  256.             goto LAB_8000a090;
  257.           }
  258.           *local_58 = 0xffffffff;
  259.         }
  260.         else {
  261.           if (iVar2 < 0x4e59534a) {
  262.             if (iVar2 != 0x4e594c4a) {
  263.               if (iVar2 < 0x4e594c4a) {
  264.                 if (iVar2 == 0x4e575250) {
  265. LAB_80009cc0:
  266.                   iVar2 = FUN_8003c7e0(iVar8,0x8004795c,0x1448fffc,0);
  267.                   if (iVar2 == 0) {
  268.                     uVar14 = 0;
  269.                     goto LAB_8000a090;
  270.                   }
  271.                   iVar2 = FUN_8003c7e0(iVar8,0x80047994,0x144afffc,0);
  272.                   if (iVar2 == 0) {
  273.                     uVar14 = 0;
  274.                     goto LAB_8000a090;
  275.                   }
  276.                   *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x10;
  277.                 }
  278.                 else {
  279.                   if (iVar2 < 0x4e575250) {
  280.                     if (iVar2 == 0x4e57524a) goto LAB_80009cc0;
  281.                   }
  282.                   else {
  283.                     if (iVar2 == 0x4e594c45) goto LAB_80009c44;
  284.                   }
  285.                 }
  286.                 goto LAB_80009ee8;
  287.               }
  288.               if (iVar2 == 0x4e595345) goto LAB_80009d28;
  289.               if ((0x4e595344 < iVar2) || (iVar2 != 0x4e594c50)) goto LAB_80009ee8;
  290.             }
  291. LAB_80009c44:
  292.             DAT_801a0e34 = 1;
  293.             iVar9 = 0xe;
  294.             iVar2 = FUN_8003c7e0(iVar8,0x800a58f8,0x8c62ff8c,0xffffffff);
  295.             if (iVar2 == 0) {
  296.               uVar14 = 0;
  297.               goto LAB_8000a090;
  298.             }
  299.             *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x10;
  300.           }
  301.           else {
  302.             if (iVar2 == 0x4e5a5345) {
  303. LAB_80008ac0:
  304.               uVar14 = 0x1000;
  305.               iVar9 = 0xf;
  306.               iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  307.               if (iVar2 == 0) {
  308.                 uVar14 = 0;
  309.                 goto LAB_8000a090;
  310.               }
  311.               *(undefined4 *)(local_54 + 0x10) = 0x17d9;
  312.               puVar3 = &DAT_801a0cf0;
  313.               DAT_801a0e34 = 2;
  314.               iVar2 = FUN_80007268(3,local_50);
  315.               if ((iVar2 == 0) || (*local_50[0] == '1')) {
  316.                 iVar2 = FUN_80007268(4,local_50);
  317.                 if ((iVar2 == 0) || (*local_50[0] == '0')) {
  318.                   puVar3 = &DAT_801a0cf0;
  319.                   DAT_801a0e30 = 0;
  320.                   iVar2 = 0;
  321.                   uVar5 = 0;
  322.                   do {
  323.                     FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  324.                                  &PTR_DAT_8016f920 + (-0x7d7d7d7e >> (uVar5 & 0x3f) & 0x7fU) *0x14)
  325.                     ;
  326.                     iVar2 = iVar2 + 1;
  327.                     DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0xff050505U;
  328.                     puVar3 = puVar3 + 0x50;
  329.                     uVar5 = uVar5 + 8;
  330.                   } while (iVar2 < 4);
  331.                   DAT_801a0e38 = 0x82828282;
  332.                   DAT_801a0e3c = -0x7d7d7d7e;
  333.                 }
  334.                 else {
  335.                   puVar3 = &DAT_801a0cf0;
  336.                   DAT_801a0e30 = 0;
  337.                   iVar2 = 0;
  338.                   uVar5 = 0;
  339.                   do {
  340.                     FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  341.                                  &PTR_DAT_8016f920 + (-0x7f7f7f80 >> (uVar5 & 0x3f) & 0x7fU) *0x14)
  342.                     ;
  343.                     iVar2 = iVar2 + 1;
  344.                     DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0xff010101U;
  345.                     puVar3 = puVar3 + 0x50;
  346.                     uVar5 = uVar5 + 8;
  347.                   } while (iVar2 < 4);
  348.                   DAT_801a0e38 = 0x80808080;
  349.                   DAT_801a0e3c = -0x7f7f7f80;
  350.                 }
  351.               }
  352.               else {
  353.                 iVar2 = FUN_80007268(4,local_50);
  354.                 if ((iVar2 == 0) || (*local_50[0] == '0')) {
  355.                   puVar3 = &DAT_801a0cf0;
  356.                   DAT_801a0e30 = 0;
  357.                   iVar2 = 0;
  358.                   uVar5 = 0;
  359.                   do {
  360.                     FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  361.                                  &PTR_DAT_8016f920 + (0x2020202 >> (uVar5 & 0x3f) & 0x7fU) *0x14);
  362.                     iVar2 = iVar2 + 1;
  363.                     DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0x40404U;
  364.                     puVar3 = puVar3 + 0x50;
  365.                     uVar5 = uVar5 + 8;
  366.                   } while (iVar2 < 4);
  367.                   DAT_801a0e38 = 0x2020202;
  368.                   DAT_801a0e3c = 0x2020202;
  369.                 }
  370.                 else {
  371.                   iVar2 = 0;
  372.                   DAT_801a0e30 = 0;
  373.                   do {
  374.                     FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,&PTR_DAT_8016f920);
  375.                     iVar2 = iVar2 + 1;
  376.                     puVar3 = puVar3 + 0x50;
  377.                   } while (iVar2 < 4);
  378.                   DAT_801a0e38 = 0;
  379.                   DAT_801a0e3c = 0;
  380.                 }
  381.               }
  382.               iVar2 = FUN_8003c7e0(iVar8,&DAT_801c6fc0,0x95630000,0xffffffff);
  383.               if (iVar2 == 0) {
  384.                 uVar14 = 0;
  385.                 goto LAB_8000a090;
  386.               }
  387.               if (*(int *)(iVar1 + 0xc) == 0x4e5a534a) {
  388.                 iVar2 = FUN_8003c7e0(iVar8,&DAT_80177cf4,0x95630000,0xffffffff);
  389.                 if (iVar2 == 0) {
  390.                   uVar14 = 0;
  391.                   goto LAB_8000a090;
  392.                 }
  393.               }
  394.               else {
  395.                 if (*(int *)(iVar1 + 0xc) == 0x4e5a5345) {
  396.                   iVar2 = FUN_8003c7e0(iVar8,&DAT_80177d34,0x95630000,0xffffffff);
  397.                   if (iVar2 == 0) {
  398.                     uVar14 = 0;
  399.                     goto LAB_8000a090;
  400.                   }
  401.                 }
  402.                 else {
  403.                   iVar2 = FUN_8003c7e0(iVar8,&DAT_801786b4,0x95630000,0xffffffff);
  404.                   if (iVar2 == 0) {
  405.                     uVar14 = 0;
  406.                     goto LAB_8000a090;
  407.                   }
  408.                 }
  409.               }
  410.               *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x1010;
  411.             }
  412.             else {
  413.               if (iVar2 < 0x4e5a5345) {
  414.                 if (iVar2 == 0x4e5a4c50) goto LAB_80008770;
  415.                 if ((iVar2 < 0x4e5a4c50) && (iVar2 == 0x4e595350)) goto LAB_80009d28;
  416.               }
  417.               else {
  418.                 if ((iVar2 == 0x4e5a5350) || ((iVar2 < 0x4e5a5350 && (iVar2 == 0x4e5a534a))))
  419.                 goto LAB_80008ac0;
  420.               }
  421.             }
  422.           }
  423.         }
  424.       }
  425.       goto LAB_80009ee8;
  426.     }
  427.     if (iVar2 == 0x4e505745) goto LAB_80008f8c;
  428.     if (iVar2 < 0x4e505745) {
  429.       if (iVar2 == 0x4e4e3650) {
  430. LAB_80009258:
  431.         iVar2 = FUN_8003c7e0(iVar8,&DAT_800005ec,0x3c028001,0xffffffff);
  432.         if (iVar2 == 0) {
  433.           uVar14 = 0;
  434.           goto LAB_8000a090;
  435.         }
  436.         if (*(int *)(iVar1 + 0xc) == 0x4e4e364a) {
  437.           iVar2 = FUN_8003c7e0(iVar8,0x8006d458,0xc0189e9,0xc0189a3);
  438.           if (iVar2 == 0) {
  439.             uVar14 = 0;
  440.             goto LAB_8000a090;
  441.           }
  442.           iVar2 = FUN_8003c7e0(iVar8,0x8006d664,0xc0189e9,0xc0189a3);
  443.           if (iVar2 == 0) {
  444.             uVar14 = 0;
  445.             goto LAB_8000a090;
  446.           }
  447.           iVar2 = FUN_8003c7e0(iVar8,0x8006d6d0,0xc0189e9,0xc0189a3);
  448.           if (iVar2 == 0) {
  449.             uVar14 = 0;
  450.             goto LAB_8000a090;
  451.           }
  452.         }
  453.         else {
  454.           iVar2 = FUN_8003c7e0(iVar8,0x8006d338,0xc0189a9,0xc018963);
  455.           if (iVar2 == 0) {
  456.             uVar14 = 0;
  457.             goto LAB_8000a090;
  458.           }
  459.           iVar2 = FUN_8003c7e0(iVar8,0x8006d544,0xc0189a9,0xc018963);
  460.           if (iVar2 == 0) {
  461.             uVar14 = 0;
  462.             goto LAB_8000a090;
  463.           }
  464.           iVar2 = FUN_8003c7e0(iVar8,0x8006d5b0,0xc0189a9,0xc018963);
  465.           if (iVar2 == 0) {
  466.             uVar14 = 0;
  467.             goto LAB_8000a090;
  468.           }
  469.         }
  470.         DAT_801a0e34 = 4;
  471.         uVar13 = 0x1000;
  472.         iVar9 = 0xf;
  473.         *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x10;
  474.       }
  475.       else {
  476.         if (iVar2 < 0x4e4e3650) {
  477.           if (iVar2 == 0x4e4d5750) {
  478. LAB_800095a8:
  479.             DAT_801a0e34 = 4;
  480.             uVar13 = 0x1000;
  481.             iVar9 = 0xf;
  482.             iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  483.             if (iVar2 == 0) {
  484.               uVar14 = 0;
  485.               goto LAB_8000a090;
  486.             }
  487.             *(undefined4 *)(local_54 + 0x10) = 0x17d6;
  488.           }
  489.           else {
  490.             if (iVar2 < 0x4e4d5750) {
  491.               if (iVar2 == 0x4e4d5745) goto LAB_800095a8;
  492.               if (iVar2 < 0x4e4d5745) {
  493.                 if (iVar2 == 0x4e4d5650) goto LAB_800095f8;
  494.               }
  495.               else {
  496.                 if (iVar2 == 0x4e4d574a) goto LAB_800095a8;
  497.               }
  498.             }
  499.             else {
  500.               if ((iVar2 == 0x4e4e364a) || ((iVar2 < 0x4e4e364a && (iVar2 == 0x4e4e3645))))
  501.               goto LAB_80009258;
  502.             }
  503.           }
  504.         }
  505.         else {
  506.           if (iVar2 != 0x4e504f45) {
  507.             if (iVar2 < 0x4e504f45) {
  508.               if (iVar2 == 0x4e4f424a) {
  509. LAB_8000994c:
  510.                 DAT_801a0e34 = 1;
  511.                 uVar13 = 0x8000;
  512.                 iVar9 = 0xe;
  513.                 iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  514.                 if (iVar2 == 0) {
  515.                   uVar14 = 0;
  516.                   goto LAB_8000a090;
  517.                 }
  518.                 *(undefined4 *)(local_54 + 0x10) = 0x17d6;
  519.               }
  520.               else {
  521.                 if (iVar2 < 0x4e4f424a) {
  522.                   if (iVar2 == 0x4e4f4245) goto LAB_8000994c;
  523.                 }
  524.                 else {
  525.                   if (iVar2 == 0x4e4f4250) goto LAB_8000994c;
  526.                 }
  527.               }
  528.               goto LAB_80009ee8;
  529.             }
  530.             if ((iVar2 != 0x4e504f50) && ((0x4e504f4f < iVar2 || (iVar2 != 0x4e504f4a))))
  531.             goto LAB_80009ee8;
  532.           }
  533.           iVar9 = 0xf;
  534.           DAT_801a0e34 = 2;
  535.         }
  536.       }
  537.     }
  538.     else {
  539.       if (iVar2 == 0x4e52424a) {
  540. LAB_80009e94:
  541.         DAT_801a0e34 = 8;
  542.         uVar13 = 0x4000;
  543.         iVar9 = 0xf;
  544.         iVar2 = FUN_8003c7e0(iVar8,0x80066884,0x8c62ff8c,0xffffffff);
  545.         if (iVar2 == 0) {
  546.           uVar14 = 0;
  547.           goto LAB_8000a090;
  548.         }
  549.         *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x110;
  550.       }
  551.       else {
  552.         if (iVar2 < 0x4e52424a) {
  553.           if (iVar2 != 0x4e514b4a) {
  554.             if (iVar2 < 0x4e514b4a) {
  555.               if (iVar2 == 0x4e505750) {
  556. LAB_80008f8c:
  557.                 uVar13 = 0x1000;
  558.                 DAT_801a0e34 = 4;
  559.                 iVar9 = 0xf;
  560.               }
  561.               else {
  562.                 if (iVar2 < 0x4e505750) {
  563.                   if (iVar2 == 0x4e50574a) goto LAB_80008f8c;
  564.                 }
  565.                 else {
  566.                   if (iVar2 == 0x4e514b45) goto LAB_800097d4;
  567.                 }
  568.               }
  569.               goto LAB_80009ee8;
  570.             }
  571.             if (iVar2 == 0x4e524245) goto LAB_80009e94;
  572.             if ((0x4e524244 < iVar2) || (iVar2 != 0x4e514b50)) goto LAB_80009ee8;
  573.           }
  574. LAB_800097d4:
  575.           iVar2 = FUN_8003c7e0(iVar8,FUN_8004989c,0x1459fffb,0);
  576.           if (iVar2 == 0) {
  577.             uVar14 = 0;
  578.             goto LAB_8000a090;
  579.           }
  580.           iVar2 = FUN_8003c7e0(iVar8,0x80049ff0,0x1608fffb,0);
  581.           if (iVar2 == 0) {
  582.             uVar14 = 0;
  583.             goto LAB_8000a090;
  584.           }
  585.           iVar2 = FUN_8003c7e0(iVar8,0x8004a384,0x15e0fffb,0);
  586.           if (iVar2 == 0) {
  587.             uVar14 = 0;
  588.             goto LAB_8000a090;
  589.           }
  590.           iVar2 = FUN_8003c7e0(iVar8,0x8004a97c,0x15e0fffb,0);
  591.           if (iVar2 == 0) {
  592.             uVar14 = 0;
  593.             goto LAB_8000a090;
  594.           }
  595.           iVar2 = FUN_8003c7e0(iVar8,0x80048ff8,0x1000fffd,0x1000ffff);
  596.           if (iVar2 == 0) {
  597.             uVar14 = 0;
  598.             goto LAB_8000a090;
  599.           }
  600.         }
  601.         else {
  602.           if (iVar2 == 0x4e524950) {
  603. LAB_80009614:
  604.             uVar13 = 0x4000;
  605.             DAT_801a0e34 = 8;
  606.             iVar9 = 0xf;
  607.           }
  608.           else {
  609.             if (iVar2 < 0x4e524950) {
  610.               if (iVar2 == 0x4e524945) goto LAB_80009614;
  611.               if (iVar2 < 0x4e524945) {
  612.                 if (iVar2 == 0x4e524250) goto LAB_80009e94;
  613.               }
  614.               else {
  615.                 if (iVar2 == 0x4e52494a) goto LAB_80009614;
  616.               }
  617.             }
  618.             else {
  619.               if ((iVar2 == 0x4e52584a) || ((iVar2 < 0x4e52584a && (iVar2 == 0x4e525845))))
  620.               goto LAB_800099a0;
  621.             }
  622.           }
  623.         }
  624.       }
  625.     }
  626.     goto LAB_80009ee8;
  627.   }
  628.   if (iVar2 == 0x4e445945) goto LAB_8000912c;
  629.   if (iVar2 < 0x4e445945) {
  630.     if (iVar2 == 0x4e42434a) {
  631. LAB_80008fc0:
  632.       DAT_801a0e34 = 4;
  633.       uVar13 = 0x1000;
  634.       iVar9 = 0xf;
  635.       iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  636.       if (iVar2 == 0) {
  637.         uVar14 = 0;
  638.         goto LAB_8000a090;
  639.       }
  640.       *(undefined4 *)(local_54 + 0x10) = 0x17d6;
  641.       iVar2 = FUN_8003c7e0(iVar8,&DAT_80244cfc,0x1420fffa,0);
  642.       if (iVar2 == 0) {
  643.         uVar14 = 0;
  644.         goto LAB_8000a090;
  645.       }
  646.       goto LAB_80009ee8;
  647.     }
  648.     if (iVar2 < 0x4e42434a) {
  649.       if (iVar2 == 0x4e414645) goto LAB_80008fa8;
  650.       if (iVar2 < 0x4e414645) {
  651.         if (iVar2 == 0x434c4250) {
  652. LAB_8000959c:
  653.           uVar13 = 0x1000;
  654.           iVar9 = 0xf;
  655.         }
  656.         else {
  657.           if (iVar2 < 0x434c4250) {
  658.             if (iVar2 == 0x434c4245) goto LAB_8000959c;
  659.             if (iVar2 < 0x434c4245) {
  660.               if (iVar2 == 0x43465a45) goto LAB_800093c8;
  661.             }
  662.             else {
  663.               if (iVar2 == 0x434c424a) goto LAB_8000959c;
  664.             }
  665.           }
  666.           else {
  667.             if ((iVar2 == 0x435a4c4a) || ((iVar2 < 0x435a4c4a && (iVar2 == 0x435a4c45)))) {
  668. LAB_80008770:
  669.               uVar13 = 0x8000;
  670.               uVar14 = 0x1000;
  671.               iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  672.               if (iVar2 == 0) {
  673.                 uVar14 = 0;
  674.                 goto LAB_8000a090;
  675.               }
  676.               *(undefined4 *)(local_54 + 0x10) = 0x17d9;
  677.               iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_58,0,0);
  678.               if (iVar2 == 0) {
  679.                 uVar14 = 0;
  680.                 goto LAB_8000a090;
  681.               }
  682.               local_58[0xba] = 0xc86e2000;
  683.               puVar3 = &DAT_801a0cf0;
  684.               local_58[0xbec7d] = 0xad090010;
  685.               local_58[0xbf870] = 0xad170014;
  686.               iVar9 = 0xe;
  687.               iVar2 = 0;
  688.               uVar5 = 0;
  689.               DAT_801a0e34 = 1;
  690.               DAT_801a0e30 = 0;
  691.               do {
  692.                 FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  693.                              &PTR_DAT_8016f920 + (0x2020202 >> (uVar5 & 0x3f) & 0x7fU) * 0x14);
  694.                 iVar2 = iVar2 + 1;
  695.                 DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0x40404U;
  696.                 puVar3 = puVar3 + 0x50;
  697.                 uVar5 = uVar5 + 8;
  698.               } while (iVar2 < 4);
  699.               DAT_801a0e38 = 0x2020202;
  700.               DAT_801a0e3c = 0x2020202;
  701.               iVar2 = *(int *)(iVar1 + 0xc);
  702.               if (iVar2 == 0x435a4c45) {
  703.                 iVar2 = FUN_8003c7e0(iVar8,0x80062d64,0x94639680,0xffffffff);
  704.                 if (iVar2 == 0) {
  705.                   uVar14 = 0;
  706.                   goto LAB_8000a090;
  707.                 }
  708.                 iVar2 = FUN_8003c7e0(iVar8,0x8006e468,0x97040000,0xffffffff);
  709.                 if (iVar2 == 0) {
  710.                   uVar14 = 0;
  711.                   goto LAB_8000a090;
  712.                 }
  713.                 iVar2 = FUN_8003c7e0(iVar8,0x8005bb14,0x9463d040,0xffffffff);
  714.                 if (iVar2 == 0) {
  715.                   uVar14 = 0;
  716.                   goto LAB_8000a090;
  717.                 }
  718.                 iVar2 = FUN_8003c7e0(iVar8,0x80066638,0x97040000,0xffffffff);
  719.                 if (iVar2 == 0) {
  720.                   uVar14 = 0;
  721.                   goto LAB_8000a090;
  722.                 }
  723.               }
  724.               else {
  725.                 if (iVar2 == 0x435a4c4a) {
  726.                   iVar2 = FUN_8003c7e0(iVar8,0x80062d64,0x94639680,0xffffffff);
  727.                   if (iVar2 == 0) {
  728.                     uVar14 = 0;
  729.                     goto LAB_8000a090;
  730.                   }
  731.                   iVar2 = FUN_8003c7e0(iVar8,0x8006e468,0x97040000,0xffffffff);
  732.                   if (iVar2 == 0) {
  733.                     uVar14 = 0;
  734.                     goto LAB_8000a090;
  735.                   }
  736.                   iVar2 = FUN_8003c7e0(iVar8,0x8005bb34,0x9463d040,0xffffffff);
  737.                   if (iVar2 == 0) {
  738.                     uVar14 = 0;
  739.                     goto LAB_8000a090;
  740.                   }
  741.                   iVar2 = FUN_8003c7e0(iVar8,0x80066658,0x97040000,0xffffffff);
  742.                   if (iVar2 == 0) {
  743.                     uVar14 = 0;
  744.                     goto LAB_8000a090;
  745.                   }
  746.                 }
  747.                 else {
  748.                   if (iVar2 == 0x4e5a4c50) {
  749.                     iVar2 = FUN_8003c7e0(iVar8,0x80062d64,0x94639680,0xffffffff);
  750.                     if (iVar2 == 0) {
  751.                       uVar14 = 0;
  752.                       goto LAB_8000a090;
  753.                     }
  754.                     iVar2 = FUN_8003c7e0(iVar8,0x8006e468,0x97040000,0xffffffff);
  755.                     if (iVar2 == 0) {
  756.                       uVar14 = 0;
  757.                       goto LAB_8000a090;
  758.                     }
  759.                     iVar2 = FUN_8003c7e0(iVar8,0x8005bb3c,0x9502000c,0xffffffff);
  760.                     if (iVar2 == 0) {
  761.                       uVar14 = 0;
  762.                       goto LAB_8000a090;
  763.                     }
  764.                     iVar2 = FUN_8003c7e0(iVar8,0x800665e8,0x97040000,0xffffffff);
  765.                     if (iVar2 == 0) {
  766.                       uVar14 = 0;
  767.                       goto LAB_8000a090;
  768.                     }
  769.                   }
  770.                 }
  771.               }
  772.               *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x110;
  773.             }
  774.           }
  775.         }
  776.       }
  777.       else {
  778.         if (iVar2 != 0x4e414c4a) {
  779.           if (iVar2 < 0x4e414c4a) {
  780.             if (iVar2 == 0x4e414650) {
  781. LAB_80008fa8:
  782.               iVar9 = 0xf;
  783.               DAT_801a0e34 = 2;
  784.             }
  785.             else {
  786.               if (iVar2 < 0x4e414650) {
  787.                 if (iVar2 == 0x4e41464a) goto LAB_80008fa8;
  788.               }
  789.               else {
  790.                 if (iVar2 == 0x4e414c45) goto LAB_800099d8;
  791.               }
  792.             }
  793.             goto LAB_80009ee8;
  794.           }
  795.           if (iVar2 == 0x4e424345) goto LAB_80008fc0;
  796.           if ((0x4e424344 < iVar2) || (iVar2 != 0x4e414c50)) goto LAB_80009ee8;
  797.         }
  798. LAB_800099d8:
  799.         DAT_801a0e34 = 8;
  800.         uVar13 = 0x4000;
  801.         iVar9 = 0xf;
  802.         iVar2 = FUN_8003c7e0(iVar8,&DAT_8000092c,0x3c028004,0xffffffff);
  803.         if (iVar2 == 0) {
  804.           uVar14 = 0;
  805.           goto LAB_8000a090;
  806.         }
  807.         iVar2 = FUN_8003c7e0(iVar8,&LAB_8002103c,0x3c028004,0xffffffff);
  808.         if (iVar2 == 0) {
  809.           uVar14 = 0;
  810.           goto LAB_8000a090;
  811.         }
  812.         iVar2 = FUN_8003c7e0(iVar8,&LAB_80021048,0x3c028004,0xffffffff);
  813.         if (iVar2 == 0) {
  814.           uVar14 = 0;
  815.           goto LAB_8000a090;
  816.         }
  817.         iVar2 = FUN_8003c7e0(iVar8,FUN_800a1bb8,0x1440fffd,0);
  818.         if (iVar2 == 0) {
  819.           uVar14 = 0;
  820.           goto LAB_8000a090;
  821.         }
  822.         iVar2 = FUN_8003c7e0(iVar8,0x800a1be0,0x1440fffd,0);
  823.         if (iVar2 == 0) {
  824.           uVar14 = 0;
  825.           goto LAB_8000a090;
  826.         }
  827.         *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x110;
  828.       }
  829.     }
  830.     else {
  831.       if (iVar2 == 0x4e425950) {
  832. LAB_80009038:
  833.         iVar2 = FUN_8003c7e0(iVar8,0x8007add0,0x1440fff9,0);
  834.         if (iVar2 == 0) {
  835.           uVar14 = 0;
  836.           goto LAB_8000a090;
  837.         }
  838.         goto LAB_80009ee8;
  839.       }
  840.       if (iVar2 < 0x4e425950) {
  841.         if (iVar2 == 0x4e424e50) {
  842. LAB_80009e24:
  843.           DAT_801a0e34 = 8;
  844.           uVar13 = 0x4000;
  845.           iVar9 = 0xf;
  846.           iVar2 = FUN_8003c7e0(iVar8,&DAT_80000548,0x8000156,0x1000ffff);
  847.           if (iVar2 == 0) {
  848.             uVar14 = 0;
  849.             goto LAB_8000a090;
  850.           }
  851.           iVar2 = FUN_8003c7e0(iVar8,&DAT_80000730,0x3c02800c,0xffffffff);
  852.           if (iVar2 == 0) {
  853.             uVar14 = 0;
  854.             goto LAB_8000a090;
  855.           }
  856.         }
  857.         else {
  858.           if (iVar2 < 0x4e424e50) {
  859.             if (iVar2 == 0x4e424e45) goto LAB_80009e24;
  860.             if (iVar2 < 0x4e424e45) {
  861.               if (iVar2 == 0x4e424350) goto LAB_80008fc0;
  862.             }
  863.             else {
  864.               if (iVar2 == 0x4e424e4a) goto LAB_80009e24;
  865.             }
  866.           }
  867.           else {
  868.             if ((iVar2 == 0x4e42594a) || ((iVar2 < 0x4e42594a && (iVar2 == 0x4e425945))))
  869.             goto LAB_80009038;
  870.           }
  871.         }
  872.       }
  873.       else {
  874.         if (iVar2 != 0x4e444f45) {
  875.           if (iVar2 < 0x4e444f45) {
  876.             if (iVar2 == 0x4e43554a) {
  877. LAB_80009064:
  878.               DAT_801a0e34 = 4;
  879.               uVar13 = 0x1000;
  880.               iVar9 = 0xf;
  881.               iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  882.               if (iVar2 == 0) {
  883.                 uVar14 = 0;
  884.                 goto LAB_8000a090;
  885.               }
  886.               *(undefined4 *)(local_54 + 0x10) = 0x17d6;
  887.               iVar2 = FUN_8003c7e0(iVar8,0x80103e0c,0x1616fff2,0);
  888.               if (iVar2 == 0) {
  889.                 uVar14 = 0;
  890.                 goto LAB_8000a090;
  891.               }
  892.               iVar2 = FUN_8003c7e0(iVar8,0x80111b00,0x51e0ffff,0);
  893.               if (iVar2 == 0) {
  894.                 uVar14 = 0;
  895.                 goto LAB_8000a090;
  896.               }
  897.               iVar2 = FUN_8003c7e0(iVar8,0x80111b04,0x8c4f0000,0);
  898.               if (iVar2 == 0) {
  899.                 uVar14 = 0;
  900.                 goto LAB_8000a090;
  901.               }
  902.             }
  903.             else {
  904.               if (iVar2 < 0x4e43554a) {
  905.                 if (iVar2 == 0x4e435545) goto LAB_80009064;
  906.               }
  907.               else {
  908.                 if (iVar2 == 0x4e435550) goto LAB_80009064;
  909.               }
  910.             }
  911.             goto LAB_80009ee8;
  912.           }
  913.           if ((iVar2 != 0x4e444f50) && ((0x4e444f4f < iVar2 || (iVar2 != 0x4e444f4a))))
  914.           goto LAB_80009ee8;
  915.         }
  916.         iVar2 = FUN_8003c7e0(iVar8,&DAT_80000a04,0x1462ffff,0);
  917.         if (iVar2 == 0) {
  918.           uVar14 = 0;
  919.           goto LAB_8000a090;
  920.         }
  921.       }
  922.     }
  923.   }
  924.   else {
  925.     if (iVar2 == 0x4e4b5445) goto LAB_800082b0;
  926.     if (iVar2 < 0x4e4b5445) {
  927.       if (iVar2 == 0x4e465a50) {
  928. LAB_800093c8:
  929.         uVar13 = 0x8000;
  930.         DAT_801a0e34 = 1;
  931.         iVar9 = 0xe;
  932.         uVar14 = uVar13;
  933.       }
  934.       else {
  935.         if (iVar2 < 0x4e465a50) {
  936.           if (iVar2 != 0x4e46584a) {
  937.             if (iVar2 < 0x4e46584a) {
  938.               if (iVar2 == 0x4e445950) {
  939. LAB_8000912c:
  940.                 DAT_801a0e34 = 2;
  941.                 iVar9 = 0xf;
  942.                 uVar13 = 0x4000;
  943.                 iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  944.                 if (iVar2 == 0) {
  945.                   uVar14 = 0;
  946.                   goto LAB_8000a090;
  947.                 }
  948.                 *(undefined4 *)(local_54 + 0x10) = 0x17d7;
  949.                 iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_58,0,0);
  950.                 if (iVar2 == 0) {
  951.                   uVar14 = 0;
  952.                   goto LAB_8000a090;
  953.                 }
  954.                 iVar2 = FUN_800814bc(local_58,&DAT_8016fea0,0x300);
  955.                 if (iVar2 == 0) {
  956.                   uVar14 = 0;
  957.                   goto LAB_8000a090;
  958.                 }
  959.                 iVar2 = FUN_8007d6a0(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  960.                 if (iVar2 == 0) {
  961.                   uVar14 = 0;
  962.                   goto LAB_8000a090;
  963.                 }
  964.                 *local_58 = 0x17d7;
  965.                 iVar2 = FUN_8007d688(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  966.                 if (iVar2 == 0) {
  967.                   uVar14 = 0;
  968.                   goto LAB_8000a090;
  969.                 }
  970.                 *local_58 = 0xffffffff;
  971.               }
  972.               else {
  973.                 if (iVar2 < 0x4e445950) {
  974.                   if (iVar2 == 0x4e44594a) goto LAB_8000912c;
  975.                 }
  976.                 else {
  977.                   if (iVar2 == 0x4e465845) goto LAB_80008e60;
  978.                 }
  979.               }
  980.               goto LAB_80009ee8;
  981.             }
  982.             if (iVar2 == 0x4e465a4a) goto LAB_800093c8;
  983.             if ((0x4e465a49 < iVar2) || (iVar2 != 0x4e465850)) goto LAB_80009ee8;
  984.           }
  985. LAB_80008e60:
  986.           puVar3 = &DAT_801a0cf0;
  987.           DAT_801a0e34 = 4;
  988.           DAT_801a0e30 = 0;
  989.           uVar13 = 0x1000;
  990.           iVar9 = 0xf;
  991.           iVar2 = 0;
  992.           uVar5 = 0;
  993.           do {
  994.             FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  995.                          &PTR_DAT_8016f920 + (-0x7b7b7b7c >> (uVar5 & 0x3f) & 0x7fU) * 0x14);
  996.             iVar2 = iVar2 + 1;
  997.             DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0xff090909U;
  998.             puVar3 = puVar3 + 0x50;
  999.             uVar5 = uVar5 + 8;
  1000.           } while (iVar2 < 4);
  1001.           DAT_801a0e38 = 0x84848484;
  1002.           DAT_801a0e3c = -0x7b7b7b7c;
  1003.           if (*(int *)(iVar1 + 0xc) == 0x4e46584a) {
  1004.             iVar2 = FUN_8003c7e0(iVar8,0x8019f548,0xa2000000,0);
  1005.             if (iVar2 == 0) {
  1006.               uVar14 = 0;
  1007.               goto LAB_8000a090;
  1008.             }
  1009.           }
  1010.           else {
  1011.             if ((*(int *)(iVar1 + 0xc) == 0x4e465845) &&
  1012.                (iVar2 = FUN_8003c7e0(iVar8,0x801989d0,0xa2000000,0), iVar2 == 0)) {
  1013.               uVar14 = 0;
  1014.               goto LAB_8000a090;
  1015.             }
  1016.           }
  1017.           FUN_800a0d58(1);
  1018.           *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x110;
  1019.         }
  1020.         else {
  1021.           if (iVar2 != 0x4e4b3445) {
  1022.             if (iVar2 < 0x4e4b3445) {
  1023.               if (iVar2 == 0x4e47554a) {
  1024. LAB_8000989c:
  1025.                 DAT_801a0e34 = 4;
  1026.                 uVar13 = 0x1000;
  1027.                 iVar9 = 0xf;
  1028.                 iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_54,0x300,0);
  1029.                 if (iVar2 == 0) {
  1030.                   uVar14 = 0;
  1031.                   goto LAB_8000a090;
  1032.                 }
  1033.                 *(undefined4 *)(local_54 + 0x10) = 0x17d6;
  1034.                 iVar2 = FUN_8003c7e0(iVar8,&LAB_80025d30,0x3c018006,0xffffffff);
  1035.                 if (iVar2 == 0) {
  1036.                   uVar14 = 0;
  1037.                   goto LAB_8000a090;
  1038.                 }
  1039.               }
  1040.               else {
  1041.                 if (iVar2 < 0x4e47554a) {
  1042.                   if (iVar2 == 0x4e475545) goto LAB_8000989c;
  1043.                 }
  1044.                 else {
  1045.                   if (iVar2 == 0x4e475550) goto LAB_8000989c;
  1046.                 }
  1047.               }
  1048.               goto LAB_80009ee8;
  1049.             }
  1050.             if ((iVar2 != 0x4e4b3450) && ((0x4e4b344f < iVar2 || (iVar2 != 0x4e4b344a))))
  1051.             goto LAB_80009ee8;
  1052.           }
  1053.           iVar2 = FUN_8000b370(*(undefined4 *)(DAT_8025cfe0 + 0x30),0);
  1054.           if (iVar2 == 0) {
  1055.             uVar14 = 0;
  1056.             goto LAB_8000a090;
  1057.           }
  1058.           iVar2 = FUN_8003c7e0(iVar8,&PTR_LAB_80020bcc,0x8df80034,0xffffffff);
  1059.           if (iVar2 == 0) {
  1060.             uVar14 = 0;
  1061.             goto LAB_8000a090;
  1062.           }
  1063.           iVar2 = FUN_8003c7e0(iVar8,&LAB_80020ebc,0x8deff330,0xffffffff);
  1064.           if (iVar2 == 0) {
  1065.             uVar14 = 0;
  1066.             goto LAB_8000a090;
  1067.           }
  1068.           DAT_801a0e34 = 8;
  1069.           uVar13 = 0x4000;
  1070.           iVar9 = 0xf;
  1071.           *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x110;
  1072.         }
  1073.       }
  1074.     }
  1075.     else {
  1076.       if (iVar2 == 0x4e4d464a) {
  1077. LAB_80009468:
  1078.         DAT_801a0e34 = 4;
  1079.         uVar13 = 0x1000;
  1080.         iVar9 = 0xf;
  1081.         iVar2 = FUN_8003c7e0(iVar8,0x800b2dcc,0x8c430004,0xffffffff);
  1082.         if (iVar2 == 0) {
  1083.           uVar14 = 0;
  1084.           goto LAB_8000a090;
  1085.         }
  1086.         iVar2 = FUN_8003c7e0(iVar8,0x800b2e70,0x8c430004,0xffffffff);
  1087.         if (iVar2 == 0) {
  1088.           uVar14 = 0;
  1089.           goto LAB_8000a090;
  1090.         }
  1091.         iVar2 = FUN_8003c7e0(iVar8,&LAB_80029eb8,0x8c4252cc,0xffffffff);
  1092.         if (iVar2 == 0) {
  1093.           uVar14 = 0;
  1094.           goto LAB_8000a090;
  1095.         }
  1096.       }
  1097.       else {
  1098.         if (iVar2 < 0x4e4d464a) {
  1099.           if (iVar2 != 0x4e4c524a) {
  1100.             if (iVar2 < 0x4e4c524a) {
  1101.               if (iVar2 == 0x4e4b5450) {
  1102. LAB_800082b0:
  1103.                 puVar3 = &DAT_801a0cf0;
  1104.                 DAT_801a0e34 = 4;
  1105.                 DAT_801a0e30 = 0;
  1106.                 uVar12 = 0xbe;
  1107.                 uVar11 = 0xbe;
  1108.                 uVar10 = 0xbe;
  1109.                 uVar13 = 0x1000;
  1110.                 iVar9 = 0xf;
  1111.                 iVar2 = 0;
  1112.                 uVar5 = 0;
  1113.                 do {
  1114.                   FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  1115.                                &PTR_DAT_8016f920 + (0x3030303 >> (uVar5 & 0x3f) & 0x7fU) * 0x14);
  1116.                   iVar2 = iVar2 + 1;
  1117.                   DAT_801a0e30 = DAT_801a0e30 | 1 << uVar5 & 0x60606U;
  1118.                   puVar3 = puVar3 + 0x50;
  1119.                   uVar5 = uVar5 + 8;
  1120.                 } while (iVar2 < 4);
  1121.                 DAT_801a0e38 = 0x83838383;
  1122.                 DAT_801a0e3c = -0x7c7c7c7d;
  1123.                 iVar2 = *(int *)(iVar1 + 0xc);
  1124.                 if (iVar2 == 0x4e4b544a) {
  1125.                   iVar2 = FUN_8003c7e0(iVar8,0x802a4118,0x3c068015,0xffffffff);
  1126.                   if (iVar2 == 0) {
  1127.                     uVar14 = 0;
  1128.                     goto LAB_8000a090;
  1129.                   }
  1130.                   iVar2 = FUN_8003c7e0(iVar8,0x800729d4,0x27bdffd8,0xffffffff);
  1131.                   if (iVar2 == 0) {
  1132.                     uVar14 = 0;
  1133.                     goto LAB_8000a090;
  1134.                   }
  1135.                   iVar2 = FUN_8003c7e0(iVar8,0x8003fbc4,0x20a50001,0xffffffff);
  1136.                   if (iVar2 == 0) {
  1137.                     uVar14 = 0;
  1138.                     goto LAB_8000a090;
  1139.                   }
  1140.                   iVar2 = FUN_8003c7e0(iVar8,0x8003fbd4,0x84040,0xffffffff);
  1141.                   if (iVar2 == 0) {
  1142.                     uVar14 = 0;
  1143.                     goto LAB_8000a090;
  1144.                   }
  1145.                   iVar2 = FUN_8003c7e0(iVar8,0x8003fc68,0x20a50001,0xffffffff);
  1146.                   if (iVar2 == 0) {
  1147.                     uVar14 = 0;
  1148.                     goto LAB_8000a090;
  1149.                   }
  1150.                   iVar2 = FUN_8003c7e0(iVar8,0x8003fc74,0x84040,0xffffffff);
  1151.                   if (iVar2 == 0) {
  1152.                     uVar14 = 0;
  1153.                     goto LAB_8000a090;
  1154.                   }
  1155.                   iVar2 = FUN_8003c7e0(iVar8,0x800987e8,0x25ad8008,0xffffffff);
  1156.                   if (iVar2 == 0) {
  1157.                     uVar14 = 0;
  1158.                     goto LAB_8000a090;
  1159.                   }
  1160.                   iVar2 = FUN_8003c7e0(iVar8,0x80098888,0x3c00e700,0xffffffff);
  1161.                   if (iVar2 == 0) {
  1162.                     uVar14 = 0;
  1163.                     goto LAB_8000a090;
  1164.                   }
  1165.                 }
  1166.                 else {
  1167.                   if (iVar2 == 0x4e4b5450) {
  1168.                     iVar2 = FUN_8003c7e0(iVar8,0x802a4160,0x3c068015,0xffffffff);
  1169.                     if (iVar2 == 0) {
  1170.                       uVar14 = 0;
  1171.                       goto LAB_8000a090;
  1172.                     }
  1173.                     iVar2 = FUN_8003c7e0(iVar8,0x80072e34,0x27bdffd8,0xffffffff);
  1174.                     if (iVar2 == 0) {
  1175.                       uVar14 = 0;
  1176.                       goto LAB_8000a090;
  1177.                     }
  1178.                     iVar2 = FUN_8003c7e0(iVar8,0x80040054,0x20a50001,0xffffffff);
  1179.                     if (iVar2 == 0) {
  1180.                       uVar14 = 0;
  1181.                       goto LAB_8000a090;
  1182.                     }
  1183.                     iVar2 = FUN_8003c7e0(iVar8,0x80040094,0x84040,0xffffffff);
  1184.                     if (iVar2 == 0) {
  1185.                       uVar14 = 0;
  1186.                       goto LAB_8000a090;
  1187.                     }
  1188.                     iVar2 = FUN_8003c7e0(iVar8,0x800400f8,0x20a50001,0xffffffff);
  1189.                     if (iVar2 == 0) {
  1190.                       uVar14 = 0;
  1191.                       goto LAB_8000a090;
  1192.                     }
  1193.                     iVar2 = FUN_8003c7e0(iVar8,0x80040134,0x84040,0xffffffff);
  1194.                     if (iVar2 == 0) {
  1195.                       uVar14 = 0;
  1196.                       goto LAB_8000a090;
  1197.                     }
  1198.                     iVar2 = FUN_8003c7e0(iVar8,0x80098f04,0x25ad8008,0xffffffff);
  1199.                     if (iVar2 == 0) {
  1200.                       uVar14 = 0;
  1201.                       goto LAB_8000a090;
  1202.                     }
  1203.                     iVar2 = FUN_8003c7e0(iVar8,0x80098fa4,0x3c0de700,0xffffffff);
  1204.                     if (iVar2 == 0) {
  1205.                       uVar14 = 0;
  1206.                       goto LAB_8000a090;
  1207.                     }
  1208.                   }
  1209.                   else {
  1210.                     if (iVar2 == 0x4e4b5445) {
  1211.                       iVar2 = FUN_8003c7e0(iVar8,0x802a4160,0x3c068015,0xffffffff);
  1212.                       if (iVar2 == 0) {
  1213.                         uVar14 = 0;
  1214.                         goto LAB_8000a090;
  1215.                       }
  1216.                       iVar2 = FUN_8003c7e0(iVar8,0x80072e54,0x27bdffd8,0xffffffff);
  1217.                       if (iVar2 == 0) {
  1218.                         uVar14 = 0;
  1219.                         goto LAB_8000a090;
  1220.                       }
  1221.                       iVar2 = FUN_8003c7e0(iVar8,0x80040074,0x20a50001,0xffffffff);
  1222.                       if (iVar2 == 0) {
  1223.                         uVar14 = 0;
  1224.                         goto LAB_8000a090;
  1225.                       }
  1226.                       iVar2 = FUN_8003c7e0(iVar8,0x800400b4,0x84040,0xffffffff);
  1227.                       if (iVar2 == 0) {
  1228.                         uVar14 = 0;
  1229.                         goto LAB_8000a090;
  1230.                       }
  1231.                       iVar2 = FUN_8003c7e0(iVar8,0x80040118,0x20a50001,0xffffffff);
  1232.                       if (iVar2 == 0) {
  1233.                         uVar14 = 0;
  1234.                         goto LAB_8000a090;
  1235.                       }
  1236.                       iVar2 = FUN_8003c7e0(iVar8,0x80040154,0x84040,0xffffffff);
  1237.                       if (iVar2 == 0) {
  1238.                         uVar14 = 0;
  1239.                         goto LAB_8000a090;
  1240.                       }
  1241.                       iVar2 = FUN_8003c7e0(iVar8,0x80098f04,0x25ad8008,0xffffffff);
  1242.                       if (iVar2 == 0) {
  1243.                         uVar14 = 0;
  1244.                         goto LAB_8000a090;
  1245.                       }
  1246.                       iVar2 = FUN_8003c7e0(iVar8,0x80098fa4,0x3c0de700,0xffffffff);
  1247.                       if (iVar2 == 0) {
  1248.                         uVar14 = 0;
  1249.                         goto LAB_8000a090;
  1250.                       }
  1251.                     }
  1252.                   }
  1253.                 }
  1254.                 *(uint *)(iVar8 + 0x12224) = *(uint *)(iVar8 + 0x12224) | 0x110;
  1255.               }
  1256.               else {
  1257.                 if (iVar2 < 0x4e4b5450) {
  1258.                   if (iVar2 == 0x4e4b544a) goto LAB_800082b0;
  1259.                 }
  1260.                 else {
  1261.                   if (iVar2 == 0x4e4c5245) goto LAB_800093ec;
  1262.                 }
  1263.               }
  1264.               goto LAB_80009ee8;
  1265.             }
  1266.             if (iVar2 == 0x4e4d4645) goto LAB_80009468;
  1267.             if ((0x4e4d4644 < iVar2) || (iVar2 != 0x4e4c5250)) goto LAB_80009ee8;
  1268.           }
  1269. LAB_800093ec:
  1270.           iVar2 = FUN_8003c7e0(iVar8,0x80097b6c,0x1443fff9,0);
  1271.           if (iVar2 == 0) {
  1272.             uVar14 = 0;
  1273.             goto LAB_8000a090;
  1274.           }
  1275.           iVar2 = FUN_8003c7e0(iVar8,0x80097bf4,0x1443fff9,0);
  1276.           if (iVar2 == 0) {
  1277.             uVar14 = 0;
  1278.             goto LAB_8000a090;
  1279.           }
  1280.           iVar2 = FUN_8003c7e0(iVar8,0x80096d08,0x8025b40,0x1000ffff);
  1281.           if (iVar2 == 0) {
  1282.             uVar14 = 0;
  1283.             goto LAB_8000a090;
  1284.           }
  1285.         }
  1286.         else {
  1287.           if (iVar2 == 0x4e4d514a) {
  1288. LAB_80009630:
  1289.             DAT_801a0e34 = 2;
  1290.             iVar9 = 0xf;
  1291.             uVar13 = 0x20000;
  1292.             iVar2 = FUN_80041cdc(*(undefined4 *)(DAT_8025cfe0 + 0x18),&local_58,0,0);
  1293.             if (iVar2 == 0) {
  1294.               uVar14 = 0;
  1295.               goto LAB_8000a090;
  1296.             }
  1297.             iVar2 = FUN_800814bc(local_58,&DAT_8016fea0,0x300);
  1298.             if (iVar2 == 0) {
  1299.               uVar14 = 0;
  1300.               goto LAB_8000a090;
  1301.             }
  1302.             iVar2 = FUN_8007d6a0(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  1303.             if (iVar2 == 0) {
  1304.               uVar14 = 0;
  1305.               goto LAB_8000a090;
  1306.             }
  1307.             *local_58 = 0x17d7;
  1308.             iVar2 = FUN_8007d688(*(undefined4 *)(DAT_8025cfe0 + 0x20),&local_58,0,4);
  1309.             if (iVar2 == 0) {
  1310.               uVar14 = 0;
  1311.               goto LAB_8000a090;
  1312.             }
  1313.             *local_58 = 0xffffffff;
  1314.             if (*(int *)(iVar1 + 0xc) == 0x4e4d5145) {
  1315.               iVar2 = FUN_8003c7e0(iVar8,0x8005e98c,0x1040ffff,0xffffffff);
  1316.               if (iVar2 == 0) {
  1317.                 uVar14 = 0;
  1318.                 goto LAB_8000a090;
  1319.               }
  1320.               iVar2 = FUN_8003c7e0(iVar8,0x8005f2d8,0x1440fffd,0xffffffff);
  1321.               if (iVar2 == 0) {
  1322.                 uVar14 = 0;
  1323.                 goto LAB_8000a090;
  1324.               }
  1325.             }
  1326.             else {
  1327.               if (*(int *)(iVar1 + 0xc) == 0x4e4d514a) {
  1328.                 iVar2 = FUN_8003c7e0(iVar8,0x8005e63c,0x1040ffff,0xffffffff);
  1329.                 if (iVar2 == 0) {
  1330.                   uVar14 = 0;
  1331.                   goto LAB_8000a090;
  1332.                 }
  1333.                 iVar2 = FUN_8003c7e0(iVar8,0x8005ef88,0x1440fffd,0xffffffff);
  1334.                 if (iVar2 == 0) {
  1335.                   uVar14 = 0;
  1336.                   goto LAB_8000a090;
  1337.                 }
  1338.               }
  1339.             }
  1340.           }
  1341.           else {
  1342.             if (iVar2 < 0x4e4d514a) {
  1343.               if (iVar2 == 0x4e4d5145) goto LAB_80009630;
  1344.               if ((iVar2 < 0x4e4d5145) && (iVar2 == 0x4e4d4650)) goto LAB_80009468;
  1345.             }
  1346.             else {
  1347.               if (iVar2 == 0x4e4d5645) goto LAB_800095f8;
  1348.               if ((iVar2 < 0x4e4d5645) && (iVar2 == 0x4e4d5150)) goto LAB_80009630;
  1349.             }
  1350.           }
  1351.         }
  1352.       }
  1353.     }
  1354.   }
  1355. LAB_80009ee8:
  1356.   if ((iVar9 == -1) || (iVar1 = FUN_800074cc(iVar1,iVar9,uVar13), iVar1 != 0)) {
  1357.     iVar1 = FUN_8005329c(*(undefined4 *)(DAT_8025cfe0 + 0x5c),uVar12,uVar11,uVar10);
  1358.     if (iVar1 == 0) {
  1359.       uVar14 = 0;
  1360.     }
  1361.     else {
  1362.       iVar2 = FUN_800612f0(*(undefined4 *)(DAT_8025cfe0 + 0x60),uVar14);
  1363.       iVar1 = DAT_801a0e3c;
  1364.       if (iVar2 == 0) {
  1365.         uVar14 = 0;
  1366.       }
  1367.       else {
  1368.         puVar3 = &DAT_801a0cf0;
  1369.         DAT_801a0e30 = 0;
  1370.         uVar6 = DAT_801a0e3c >> 7;
  1371.         iVar2 = 0;
  1372.         uVar5 = 0;
  1373.         do {
  1374.           FUN_80062db4(*(undefined4 *)(DAT_8025cfe0 + 0x68),puVar3,
  1375.                        &PTR_DAT_8016f920 + (iVar1 >> (uVar5 & 0x3f) & 0x7fU) * 0x14);
  1376.           iVar2 = iVar2 + 1;
  1377.           DAT_801a0e30 = DAT_801a0e30 | uVar6 & 1 << uVar5;
  1378.           puVar3 = puVar3 + 0x50;
  1379.           uVar5 = uVar5 + 8;
  1380.         } while (iVar2 < 4);
  1381.         iVar2 = 0;
  1382.         puVar3 = &DAT_801a0cf0;
  1383.         iVar1 = 0;
  1384.         do {
  1385.           FUN_80062d04(*(undefined4 *)(DAT_8025cfe0 + 0x68),iVar2,puVar3);
  1386.           if ((DAT_801a0e34 & 0x10) == 0) {
  1387.             if ((DAT_801a0e30 & 1 << iVar1) == 0) {
  1388.               iVar8 = FUN_8004157c(uVar7,iVar2,0);
  1389.               if (iVar8 == 0) {
  1390.                 uVar14 = 0;
  1391.                 goto LAB_8000a090;
  1392.               }
  1393.             }
  1394.             else {
  1395.               iVar8 = FUN_8004157c(uVar7,iVar2,2);
  1396.               if (iVar8 == 0) {
  1397.                 uVar14 = 0;
  1398.                 goto LAB_8000a090;
  1399.               }
  1400.             }
  1401.           }
  1402.           else {
  1403.             iVar8 = FUN_8004157c(uVar7,iVar2,1);
  1404.             if (iVar8 == 0) {
  1405.               uVar14 = 0;
  1406.               goto LAB_8000a090;
  1407.             }
  1408.           }
  1409.           iVar2 = iVar2 + 1;
  1410.           iVar1 = iVar1 + 8;
  1411.           puVar3 = puVar3 + 0x50;
  1412.         } while (iVar2 < 4);
  1413.         uVar14 = 1;
  1414.       }
  1415.     }
  1416.   }
  1417.   else {
  1418.     uVar14 = 0;
  1419.   }
  1420. LAB_8000a090:
  1421.   FUN_80152e74(uVar14);
  1422.   return;
  1423. }
  1424.  
  1425.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement