sobinist

YLT_RaymanModel.c PS1

Apr 12th, 2020
522
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 175.15 KB | None | 0 0
  1. // From the Learn_30 ps1 executable
  2. // Note: param_2 + 0x48) =    probably denotes a state change
  3. /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
  4.  
  5. undefined4 UpdateRayman(int param_1,int param_2)
  6.  
  7. {
  8.   short sVar1;
  9.   undefined2 uVar2;
  10.   int iVar3;
  11.   int iVar4;
  12.   undefined4 uVar5;
  13.   int iVar6;
  14.   int iVar7;
  15.   undefined4 *puVar8;
  16.   uint uVar9;
  17.   int iVar10;
  18.   undefined4 uVar11;
  19.   uint *puVar12;
  20.   undefined4 uVar13;
  21.   int *piVar14;
  22.   int unaff_s5;
  23.   int iVar15;
  24.   undefined8 uVar16;
  25.   undefined4 local_2f0;
  26.   undefined4 local_2ec;
  27.   int local_2e8;
  28.   undefined auStack736 [16];
  29.   undefined auStack720 [8];
  30.   undefined4 local_2c8;
  31.   undefined auStack704 [16];
  32.   undefined auStack688 [8];
  33.   undefined4 local_2a8;
  34.   undefined auStack672 [16];
  35.   undefined4 local_290;
  36.   undefined4 local_28c;
  37.   undefined4 local_288;
  38.   undefined4 local_284;
  39.   undefined auStack640 [16];
  40.   undefined auStack624 [16];
  41.   undefined auStack608 [16];
  42.   undefined auStack592 [16];
  43.   undefined auStack576 [16];
  44.   undefined auStack560 [16];
  45.   undefined auStack544 [8];
  46.   undefined4 local_218;
  47.   undefined auStack528 [16];
  48.   undefined4 local_200;
  49.   undefined4 local_1fc;
  50.   undefined4 local_1f8;
  51.   undefined4 local_1f4;
  52.   undefined4 local_1f0;
  53.   undefined4 local_1ec;
  54.   undefined4 local_1e8;
  55.   undefined4 local_1e4;
  56.   int local_1e0;
  57.   int local_1dc;
  58.   int local_1d8;
  59.   undefined4 local_1d4;
  60.   int local_1d0;
  61.   int local_1cc;
  62.   int local_1c8;
  63.   int local_1c4;
  64.   undefined auStack448 [16];
  65.   undefined auStack432 [16];
  66.   undefined4 local_1a0;
  67.   undefined4 local_19c;
  68.   undefined4 local_198;
  69.   undefined4 local_194;
  70.   undefined4 local_190;
  71.   undefined4 local_18c;
  72.   int local_188;
  73.   undefined4 local_180;
  74.   undefined4 local_17c;
  75.   undefined4 local_178;
  76.   undefined4 local_174;
  77.   undefined4 local_170;
  78.   undefined4 local_16c;
  79.   undefined4 local_168;
  80.   undefined auStack352 [16];
  81.   undefined auStack336 [16];
  82.   undefined auStack320 [16];
  83.   undefined auStack304 [16];
  84.   undefined auStack288 [16];
  85.   undefined auStack272 [8];
  86.   int local_108;
  87.   undefined4 local_100;
  88.   undefined4 local_fc;
  89.   undefined4 local_f8;
  90.   undefined4 local_f4;
  91.   undefined4 local_f0;
  92.   undefined4 local_ec;
  93.   undefined4 local_e8;
  94.   undefined auStack224 [8];
  95.   undefined4 local_d8;
  96.   undefined auStack208 [8];
  97.   int local_c8;
  98.   undefined auStack192 [16];
  99.   undefined4 local_b0;
  100.   undefined4 local_ac;
  101.   undefined4 local_a8;
  102.   undefined4 local_a4;
  103.   undefined auStack160 [16];
  104.   undefined auStack144 [16];
  105.   undefined auStack128 [16];
  106.   undefined auStack112 [16];
  107.   undefined4 local_60;
  108.   undefined4 local_5c;
  109.   undefined4 local_50;
  110.   undefined4 local_4c;
  111.   int local_48;
  112.   undefined4 local_44;
  113.   int local_40;
  114.   int local_3c;
  115.   undefined4 local_30;
  116.   undefined4 local_2c;
  117.   undefined4 local_28;
  118.   undefined auStack32 [16];
  119.   undefined auStack16 [16];
  120.  
  121.   iVar3 = FUN_800220bc();
  122.   if (iVar3 == 0x2a) {
  123.     if (*(int *)(param_2 + 0x114) < 0x5000) {
  124.       FUN_80064724(param_1,param_2);
  125.     }
  126.     iVar3 = FUN_80064b1c(param_1,param_2);
  127.     if (iVar3 != 0) {
  128.       return 1;
  129.     }
  130.     iVar4 = param_2 + 0x218;
  131.     FUN_8002214c(param_1,iVar4);
  132.     FUN_8004dce0(iVar4,param_2 + 0x228,iVar4);
  133.     *(undefined4 *)(param_2 + 0x220) = 0;
  134.     FUN_80027634(param_2 + 0x1e8,auStack32);
  135.     FUN_8004ea6c(auStack32,auStack16);
  136.     iVar3 = FUN_80072bdc(param_1,auStack16);
  137.     if (iVar3 < 0xc8001) {
  138.       FUN_800256d4(param_1,0xffffd000);
  139.     }
  140.     else {
  141.       FUN_8004db84(iVar4,iVar4);
  142.       FUN_8004d8e0(iVar4,iVar4,0x7000);
  143.       FUN_800256ec(param_1,*(undefined4 *)(param_2 + 0x218));
  144.       FUN_800256f8(param_1,*(undefined4 *)(param_2 + 0x21c));
  145.     }
  146.     iVar3 = FUN_800240d4(param_1,1);
  147.     if (iVar3 == 0) {
  148.       FUN_80065d98(param_1,param_2);
  149.       return 1;
  150.     }
  151.     *(undefined2 *)(param_2 + 0x248) = 1;
  152.     change_action(param_1,2,0xffff81ec,0xffff81dc,0x27b2);
  153.     FUN_80024da4(param_1,0x29);
  154.     return 1;
  155.   }
  156.   if (iVar3 == 0x29) {
  157.     iVar3 = FUN_80064b1c(param_1,param_2);
  158.     if (iVar3 != 0) {
  159.       return 1;
  160.     }
  161.     if (_DAT_ffff8b20 == 0) {
  162.       _DAT_ffff8b20 = -0xa000;
  163.     }
  164.     FUN_80026e48(param_1,_DAT_ffff8b20);
  165.     iVar3 = param_2 + 0x218;
  166.     FUN_8002214c(param_1,iVar3);
  167.     FUN_8004dce0(iVar3,param_2 + 0x228,iVar3);
  168.     thunk_FUN_80051ce0(param_1,iVar3);
  169.     FUN_80065d98(param_1,param_2);
  170.     return 1;
  171.   }
  172.   if (iVar3 == 0x2c) {
  173.     iVar3 = FUN_800240d4(param_1,1);
  174.     if (iVar3 == 0) {
  175.       change_action(param_1,4,"YLT_montee",0xffff81dc,0x276e);
  176.     }
  177.     else {
  178.       change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x2770);
  179.       iVar3 = param_2 + 0x218;
  180.       FUN_8002214c(param_1,iVar3);
  181.       FUN_8004dce0(iVar3,param_2 + 0x228,iVar3);
  182.       thunk_FUN_80051ce0(param_1,iVar3);
  183.       FUN_800256c8(param_1,0);
  184.       FUN_800256e0(param_1,0);
  185.     }
  186.     FUN_800256d4(param_1,0xfffe4000);
  187.     FUN_80065d98(param_1,param_2);
  188.     return 1;
  189.   }
  190.   if (iVar3 == 0x28) {
  191.     uVar9 = *(uint *)(param_2 + 0x210);
  192.     if ((uVar9 & 2) != 0) {
  193.       *(undefined2 *)(param_2 + 0x248) = 1;
  194.       _DAT_ffff8b20 = 0xffffe000;
  195.       change_action(param_1,1,"YLT_Walk",0xffff81dc,0x2726);
  196.       FUN_80024da4(param_1,0x29);
  197.       return 1;
  198.     }
  199.     if ((uVar9 & 4) != 0) {
  200.       *(undefined2 *)(param_2 + 0x248) = 1;
  201.       _DAT_ffff8b20 = 0xffff6000;
  202.       change_action(param_1,2,0xffff81ec,0xffff81dc,0x2730);
  203.       FUN_80024da4(param_1,0x29);
  204.       return 1;
  205.     }
  206.     if ((uVar9 & 0x10) != 0) {
  207.       *(undefined2 *)(param_2 + 0x248) = 0xb;
  208.       change_action(param_1,4,"YLT_montee",0xffff81dc,0x2738);
  209.       FUN_800256e0(param_1,0x14000);
  210.       FUN_80024da4(param_1,0x2a);
  211.       _DAT_ffff8218 = 400;
  212.       iVar3 = param_2 + 0x218;
  213.       FUN_8002214c(param_1,iVar3);
  214.       FUN_8004dce0(iVar3,param_2 + 0x228,iVar3);
  215.       *(undefined4 *)(param_2 + 0x220) = 0;
  216.       thunk_FUN_80051ce0(param_1,iVar3);
  217.       return 1;
  218.     }
  219.     if ((uVar9 & 0x800) == 0) {
  220.       if ((uVar9 & 0x1000) == 0) {
  221.         return 1;
  222.       }
  223.       *(undefined2 *)(param_2 + 0x248) = 4;
  224.       FUN_800256c8(param_1,0);
  225.       FUN_800256d4(param_1,0);
  226.       FUN_800256e0(param_1,0);
  227.       change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x275d);
  228.       FUN_80024da4(param_1,0x2c);
  229.       _DAT_ffff8218 = 400;
  230.       FUN_800266b8(param_1,0);
  231.       FUN_800266c4(param_1,0);
  232.       FUN_800266d0(param_1,0);
  233.       FUN_80026840(param_1,0x1000,0x1000);
  234.       return 1;
  235.     }
  236.     *(undefined2 *)(param_2 + 0x248) = 1;
  237.     change_action(param_1,2,0xffff81ec,0xffff81dc,0x2747);
  238.     FUN_80024da4(param_1,0x29);
  239.     return 1;
  240.   }
  241.   if (iVar3 == 0x26) {
  242.     iVar3 = FUN_80027948(param_1,*(undefined4 *)(param_2 + 0x1cc),param_2 + 0x200);
  243.     if (iVar3 != 0) {
  244.       FUN_8002777c(param_1,*(undefined4 *)(param_2 + 0x1cc),param_2 + 0x1e8);
  245.       uVar5 = FUN_800279e0(param_2 + 0x200);
  246.       *(undefined4 *)(param_2 + 0x210) = uVar5;
  247.       FUN_80027634(param_2 + 0x1e8,auStack736);
  248.       FUN_80027854(param_1,*(undefined4 *)(param_2 + 0x1cc));
  249.       FUN_8004ea6c(auStack736,param_2 + 0x228);
  250.       FUN_80024da4(param_1,0x28);
  251.       _DAT_ffff8218 = 100;
  252.       return 1;
  253.     }
  254.     *(undefined4 *)(param_2 + 0x1fc) = 1;
  255.     _DAT_ffff8b20 = 0xffff6000;
  256.     FUN_8002214c(param_1,param_2);
  257.     *(undefined4 *)(param_2 + 0xbc) = 0;
  258.     FUN_80064058(param_1,param_2);
  259.     return 1;
  260.   }
  261.   if (iVar3 == 0x25) {
  262.     *(undefined4 *)(param_2 + 0x38) = 0xffffffff;
  263.     iVar3 = FUN_800240d4(param_1,6);
  264.     if (((iVar3 == 0) && (iVar3 = FUN_800240d4(param_1,1), iVar3 == 0)) &&
  265.        (iVar3 = FUN_80027398(param_2 + 0x1e8,param_1), 199 < iVar3)) {
  266.       return 1;
  267.     }
  268.     FUN_80024da4(param_1,0x26);
  269.     return 1;
  270.   }
  271.   if (iVar3 == 0x24) {
  272.     if (*(int *)(param_2 + 0x1cc) == 0) {
  273.       FUN_80064058(param_1,param_2);
  274.       _DAT_ffff8b20 = 0xffff6000;
  275.       return 1;
  276.     }
  277.     FUN_800278f8(param_1,*(int *)(param_2 + 0x1cc));
  278.     FUN_80027704(param_1,*(undefined4 *)(param_2 + 0x1cc),param_2 + 0x1e8);
  279.     *(undefined2 *)(param_2 + 0x248) = 0;
  280.     *(undefined4 *)(param_2 + 0x238) = 0;
  281.     *(undefined4 *)(param_2 + 0x23c) = 0;
  282.     *(undefined4 *)(param_2 + 0x240) = 0;
  283.     iVar3 = FUN_800240d4(param_1,1);
  284.     if (iVar3 == 0) {
  285.       change_action(param_1,5,0xffff81f4,0xffff81dc,0x26f6);
  286.     }
  287.     FUN_80024da4(param_1,0x25);
  288.     return 1;
  289.   }
  290.   if (iVar3 == 0x5f) {
  291.     _DAT_ffff8b44 = 1;
  292.     _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  293.     *(undefined4 *)(param_2 + 0x38) = 0xd;
  294.     FUN_800256e0(param_1,*(undefined4 *)(param_2 + 0x150));
  295.     *(undefined4 *)(param_2 + 0x40) = 3;
  296.     FUN_800647b4(param_1,param_2);
  297.     *(undefined4 *)(param_2 + 0xac) = 0;
  298.     *(undefined4 *)(param_2 + 0xa8) = 0;
  299.     *(undefined4 *)(param_2 + 0xa4) = 0;
  300.     *(undefined4 *)(param_2 + 0x58) = 1;
  301.     return 1;
  302.   }
  303.   if (iVar3 == 0x23) {
  304.     FUN_80073308(*(int *)(param_1 + 0x20) + 0x14,0x40,"PLAY_SAUT",0xffff81dc,0x269e);
  305.     FUN_80073308(*(int *)(param_1 + 0x20) + 0x14,0x41,"PLAY_SAUT1",0xffff81dc,0x26a2);
  306.     FUN_8003db2c(1,200);
  307.     FUN_80024da4(param_1,0x5f);
  308.     return 1;
  309.   }
  310.   if (iVar3 == 0x20) {
  311.     return 1;
  312.   }
  313.   if (iVar3 == 0x1b) {
  314.     FUN_80044710(3);
  315.     *(undefined4 *)(param_2 + 0x38) = 0xc;
  316.     FUN_8002643c(param_1,0);
  317.     FUN_800654e8(param_1,param_2);
  318.     *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  319.     if (*(short *)(param_2 + 0xc4) < 10) {
  320.       return 1;
  321.     }
  322.     FUN_80062378(param_1,param_2);
  323.     FUN_80062b50(param_1,param_2);
  324.     if (*(int *)(param_2 + 0x34) == 0) {
  325.       iVar3 = _DAT_ffff8af8;
  326.       if (_DAT_ffff8af8 < 1) {
  327.         iVar3 = -_DAT_ffff8af8;
  328.       }
  329.       if ((iVar3 < 0x1e) && (*(int *)(param_2 + 0x30) == 0)) {
  330.         FUN_80022930(param_1,&local_2f0);
  331.         local_2e8 = 0;
  332.         thunk_FUN_80051ce0(param_1,&local_2f0);
  333.         FUN_8002572c(param_1,-_DAT_ffff8b24);
  334.         FUN_8002572c(*(undefined4 *)(param_2 + 0x19c),-_DAT_ffff8b24);
  335.         _DAT_ffff8af8 = 0;
  336.         _DAT_ffff8b24 = 0;
  337.       }
  338.       else {
  339.         FUN_8002572c(param_1,-_DAT_ffff8b24 / 10);
  340.         FUN_8002572c(*(undefined4 *)(param_2 + 0x19c),-_DAT_ffff8b24 / 10);
  341.         _DAT_ffff8b24 = _DAT_ffff8b24 - _DAT_ffff8b24 / 10;
  342.         _DAT_ffff8af8 = _DAT_ffff8af8 - _DAT_ffff8af8 / 5;
  343.       }
  344.     }
  345.     else {
  346.       if (*(int *)(param_2 + 0x34) < 1) {
  347.         _DAT_ffff8af8 = _DAT_ffff8af8 + -0x10;
  348.         if (_DAT_ffff8af8 < -0x51) {
  349.           _DAT_ffff8af8 = -0x51;
  350.         }
  351.       }
  352.       else {
  353.         _DAT_ffff8af8 = _DAT_ffff8af8 + 0x10;
  354.         if (0x51 < _DAT_ffff8af8) {
  355.           _DAT_ffff8af8 = 0x51;
  356.         }
  357.       }
  358.       iVar3 = _DAT_ffff8af8 * -0x7d;
  359.       if (0x32 < _DAT_ffff8b08) {
  360.         uVar16 = FUN_8002047c(_DAT_ffff8b08,-_DAT_ffff8af8);
  361.         uVar16 = FUN_800211f0(0x9ae3dc33,0x3f24a429,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  362.         uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  363.         _DAT_ffff8af8 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  364.         uVar16 = FUN_8002047c(_DAT_ffff8b08);
  365.         uVar16 = FUN_800211f0(0,0xc0040000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  366.         uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0,0x405f4000);
  367.         uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  368.         iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  369.       }
  370.       if ((_DAT_ffff8b24 + _DAT_ffff8af8 < 0x59a) && (-0x59a < _DAT_ffff8b24 + _DAT_ffff8af8)) {
  371.         FUN_8002572c(param_1);
  372.         FUN_8002572c(*(undefined4 *)(param_2 + 0x19c),_DAT_ffff8af8);
  373.         _DAT_ffff8b24 = _DAT_ffff8b24 + _DAT_ffff8af8;
  374.       }
  375.       FUN_800256e0(param_1,iVar3);
  376.     }
  377.     iVar3 = FUN_800240d4(param_1,3);
  378.     if (((iVar3 == 0) && (iVar3 = FUN_800240d4(param_1,6), iVar3 == 0)) &&
  379.        ((iVar3 = FUN_800240d4(param_1,1), iVar3 == 0 ||
  380.         (iVar3 = FUN_800240d4(param_1,2), iVar3 != 0)))) {
  381.       FUN_80064b00(*(undefined4 *)(param_2 + 0x19c),param_2);
  382.       FUN_80063834();
  383.       change_action(param_1,5,0xffff81f4,0xffff81dc,0x264a);
  384.       FUN_800647b4(param_1,param_2);
  385.       *(undefined4 *)(param_2 + 0x13c) = 1;
  386.       FUN_8002643c(param_1);
  387.       *(undefined4 *)(param_2 + 0x164) = 0;
  388.       *(undefined4 *)(param_2 + 0x19c) = 0;
  389.       FUN_8003db2c(1,0);
  390.       _DAT_ffff8b24 = 0;
  391.       return 1;
  392.     }
  393.     uVar5 = FUN_80022a08(param_1);
  394.     iVar3 = FUN_80024460(uVar5,0x2000);
  395.     if (iVar3 != 0) {
  396.       uVar5 = FUN_80022a08(param_1);
  397.       iVar3 = FUN_80024460(uVar5,0x400);
  398.       if (iVar3 != 0) {
  399.         uVar5 = FUN_80022a08(param_1);
  400.         iVar3 = FUN_80024460(uVar5,0x4000);
  401.         if (iVar3 != 0) {
  402.           if (_DAT_ffff8b40 == 0) {
  403.             FUN_80073308(*(int *)(param_1 + 0x20) + 0x14,0xffffffff,"PLAY_SKINOT2",0xffff81dc,0x265f
  404.                         );
  405.           }
  406.           _DAT_ffff8b40 = _DAT_ffff8b40 + 1;
  407.           if ((_DAT_ffff87f8 & 1) == 0) {
  408.             FUN_80022980(param_1,&local_60);
  409.             local_60 = FUN_800220a0(local_60,0x28000);
  410.             local_5c = FUN_800220a0(local_5c,0x28000);
  411.             FUN_8004eac4(&local_60,&local_40);
  412.             iVar3 = *(int *)(param_1 + 0x20);
  413.             piVar14 = (int *)(iVar3 + 0x14);
  414.             *piVar14 = *piVar14 + local_40;
  415.             *(int *)(iVar3 + 0x18) = *(int *)(iVar3 + 0x18) + local_3c;
  416.             FUN_8008a35c(*(undefined4 *)(param_1 + 0x20));
  417.             *piVar14 = *piVar14 + local_40 * -2;
  418.             *(int *)(iVar3 + 0x18) = *(int *)(iVar3 + 0x18) + local_3c * -2;
  419.             FUN_8008a35c(*(undefined4 *)(param_1 + 0x20));
  420.             *piVar14 = *piVar14 + local_40;
  421.             *(int *)(iVar3 + 0x18) = *(int *)(iVar3 + 0x18) + local_3c;
  422.           }
  423.           puVar8 = (undefined4 *)FUN_80022ba0(param_1,4);
  424.           local_50 = *puVar8;
  425.           local_4c = puVar8[1];
  426.           local_44 = puVar8[3];
  427.           local_48 = puVar8[2] + -0x3c000;
  428.           FUN_8002214c(param_1,param_2 + 0x1b4);
  429.           if (local_48 <= *(int *)(param_2 + 0x1bc)) {
  430.             return 1;
  431.           }
  432.           FUN_8002214c(param_1,&local_2f0);
  433.           FUN_8004eac4(&local_2f0,&local_30);
  434.           FUN_8009a964();
  435.           FUN_80093afc(local_30,local_2c,local_28);
  436.           FUN_8005c95c(*(int *)(param_1 + 0x20) + 0x14,_DAT_ffff8aa0,0xffffffff);
  437.           _DAT_ffff8b40 = 0;
  438.           FUN_8002721c(param_1,0x34);
  439.           *(undefined4 *)(param_2 + 0x60) = 0;
  440.           *(undefined4 *)(param_2 + 0xd8) = 1;
  441.           *(undefined4 *)(param_2 + 0x100) = 1;
  442.           FUN_80024da4(param_1,0xf);
  443.           FUN_80024dfc(param_1,2);
  444.           *(undefined2 *)(param_2 + 0x106) = 0;
  445.           return 1;
  446.         }
  447.       }
  448.     }
  449.     FUN_8005c95c(*(int *)(param_1 + 0x20) + 0x14,_DAT_ffff8aa0,0xffffffff);
  450.     _DAT_ffff8b40 = 0;
  451.     return 1;
  452.   }
  453.   if (iVar3 == 0x1f) {
  454.     FUN_800442fc();
  455.     iVar3 = FUN_800375cc(param_1);
  456.     if (iVar3 == 0) {
  457.       return 1;
  458.     }
  459.     FUN_80044710(1);
  460.     *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  461.     *(undefined4 *)(param_2 + 0x44) = 0;
  462.     FUN_80024da4(param_1,0x2b);
  463.     return 1;
  464.   }
  465.   if (iVar3 == 0x1e) {
  466.     FUN_80062378(param_1,param_2);
  467.     FUN_800655e0(param_1,param_2);
  468.     FUN_80026424(param_1,0);
  469.     FUN_80066e04(param_1,param_2);
  470.     iVar3 = FUN_8002326c(2);
  471.     if ((iVar3 != 0) && (iVar3 = FUN_80024afc(param_2 + 0xa4), iVar3 != 0)) {
  472.       _DAT_ffff8b58 = 1;
  473.     }
  474.     if (((0xc < *(int *)(param_2 + 0x44)) && (0x15 < *(int *)(param_2 + 0x44))) &&
  475.        (iVar3 = FUN_80064d40(param_1,param_2), iVar3 == 0)) {
  476.       FUN_800647b4(param_1,param_2);
  477.       return 1;
  478.     }
  479.     iVar4 = param_2 + 0xa4;
  480.     iVar3 = FUN_80024afc(iVar4);
  481.     if (iVar3 == 0) {
  482.       FUN_80025350(param_1,iVar4);
  483.       FUN_800256e0(param_1,0xc800);
  484.     }
  485.     else {
  486.       FUN_800256e0(param_1,0xa800);
  487.     }
  488.     iVar3 = FUN_80023a8c(0xc);
  489.     if (iVar3 != 0) {
  490.       iVar3 = FUN_800240d4(param_1,2);
  491.       if (iVar3 == 0) {
  492.         FUN_80063408(param_1,param_2);
  493.       }
  494.       else {
  495.         puVar8 = (undefined4 *)FUN_80022f28(param_1,2);
  496.         DAT_800b988c = *puVar8;
  497.         DAT_800b9890 = puVar8[1];
  498.         DAT_800b9894 = puVar8[2];
  499.         DAT_800b9898 = puVar8[3];
  500.         FUN_80022930(param_1,auStack128);
  501.         iVar3 = FUN_8004d870(auStack128,&DAT_800b988c);
  502.         if (-0x800 < iVar3) {
  503.           FUN_80063408(param_1,param_2);
  504.         }
  505.       }
  506.     }
  507.     FUN_80023a8c(0xb);
  508.     iVar3 = FUN_80064b1c(param_1,param_2);
  509.     if (iVar3 != 0) {
  510.       return 1;
  511.     }
  512.     iVar3 = FUN_80064d40(param_1,param_2);
  513.     if (iVar3 != 0) {
  514.       return 1;
  515.     }
  516.     iVar3 = FUN_80065098(param_1,param_2);
  517.     if (iVar3 != 0) {
  518.       return 1;
  519.     }
  520.     iVar3 = FUN_80063e90(param_1,param_2);
  521.     if (iVar3 != 0) {
  522.       return 1;
  523.     }
  524.     *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 3;
  525.     iVar3 = FUN_80024afc(param_2 + 0x74);
  526.     if (((iVar3 == 0) && (iVar3 = FUN_80023a8c(0xc), iVar3 == 0)) &&
  527.        (iVar3 = FUN_80024afc(iVar4), iVar3 != 0)) {
  528.       FUN_80065dec(param_1,param_2);
  529.       iVar3 = FUN_800240d4(param_1,2);
  530.       if (iVar3 == 0) {
  531.         FUN_80063454(param_1,param_2);
  532.       }
  533.       else {
  534.         puVar8 = (undefined4 *)FUN_80022f28(param_1,2);
  535.         DAT_800b988c = *puVar8;
  536.         DAT_800b9890 = puVar8[1];
  537.         DAT_800b9894 = puVar8[2];
  538.         DAT_800b9898 = puVar8[3];
  539.         FUN_80022930(param_1,auStack112);
  540.         iVar3 = FUN_8004d870(auStack112,&DAT_800b988c);
  541.         if (-0x800 < iVar3) {
  542.           FUN_80063454(param_1,param_2);
  543.         }
  544.       }
  545.     }
  546.     FUN_800673f4(param_1,param_2,9);
  547.     return 1;
  548.   }
  549.   if (iVar3 == 2) {
  550.     FUN_80039564(param_1,0x1e);
  551.     *(undefined4 *)(param_2 + 0x38) = 1;
  552.     FUN_80062378(param_1,param_2);
  553.     FUN_800655e0(param_1,param_2);
  554.     iVar3 = FUN_8002326c(2);
  555.     if (iVar3 != 0) {
  556.       *(undefined4 *)(param_2 + 0x40) = 0;
  557.       *(undefined4 *)(param_2 + 0x68) = 1;
  558.       FUN_800648d4(param_1,param_2);
  559.       _DAT_ffff8b20 = 0xffffe000;
  560.       _DAT_ffff8228 = 0xffffc000;
  561.       if (*(int *)(param_2 + 0xbc) != 0) {
  562.         FUN_80026448(param_1,0);
  563.         FUN_80026430(param_1,1);
  564.         *(undefined4 *)(param_2 + 0x40) = 0;
  565.       }
  566.       uVar5 = FUN_80022a08(param_1);
  567.       iVar3 = FUN_80024460(uVar5,0x10);
  568.       if (iVar3 == 0) {
  569.         return 1;
  570.       }
  571.       FUN_800628cc(param_1,param_2);
  572.       return 1;
  573.     }
  574.     iVar3 = FUN_80023a8c(0);
  575.     if (iVar3 == 0) {
  576.       iVar3 = FUN_80062b1c();
  577.       if (iVar3 == 0) {
  578.         if (5 < *(short *)(param_2 + 0xc4)) {
  579.           *(undefined2 *)(param_2 + 0xc4) = 0;
  580.           FUN_800642a8(param_1,param_2);
  581.           _DAT_ffff8b20 = 0xffffe000;
  582.           return 1;
  583.         }
  584.         *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  585.       }
  586.       else {
  587.         *(undefined2 *)(param_2 + 0xc4) = 0;
  588.       }
  589.       iVar3 = FUN_80023a8c(1);
  590.       if (iVar3 != 0) {
  591.         FUN_800642a8(param_1,param_2);
  592.         _DAT_ffff8b20 = 0xffffe000;
  593.         return 1;
  594.       }
  595.     }
  596.     iVar3 = FUN_80023a8c(0xc);
  597.     if (iVar3 != 0) {
  598.       FUN_80064650(param_1,param_2);
  599.       return 1;
  600.     }
  601.     iVar3 = FUN_8002326c(0xb);
  602.     if ((iVar3 != 0) && (*(int *)(param_2 + 0xbc) == 0)) {
  603.       *(undefined4 *)(param_2 + 0xbc) = 2;
  604.       if (*(short *)(param_2 + 0x182) == 0) {
  605.         change_action(param_1,0x4f,"YLT_Bloc_Tir_AV_Tir1",0xffff81dc,0x24d6);
  606.         *(undefined2 *)(param_2 + 0x182) = 1;
  607.       }
  608.       else {
  609.         if (*(short *)(param_2 + 0x182) == 1) {
  610.           change_action(param_1,0x49,"YLT_Bloc_Tir_AV_Tir2",0xffff81dc,0x24db);
  611.           *(undefined2 *)(param_2 + 0x182) = 0;
  612.         }
  613.       }
  614.     }
  615.     iVar3 = FUN_800375cc(param_1);
  616.     if (iVar3 != 0) {
  617.       iVar3 = FUN_8003758c(param_1,0x4f);
  618.       if (iVar3 == 0) {
  619.         iVar3 = FUN_8003758c(param_1,0x4c);
  620.         if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x4e), iVar3 == 0)) {
  621.           iVar3 = FUN_8003758c(param_1,0x49);
  622.           if (iVar3 != 0) {
  623.             *(undefined2 *)(param_2 + 0x182) = 0;
  624.             *(undefined4 *)(param_2 + 0xbc) = 0;
  625.             change_action(param_1,0x4e,"YLT_Bloc_Tir_AV_Delai2",0xffff81dc,0x24f3);
  626.           }
  627.         }
  628.         else {
  629.           *(undefined4 *)(param_2 + 0xbc) = 0;
  630.           *(undefined2 *)(param_2 + 0x182) = 0;
  631.           *(undefined4 *)(param_2 + 0x184) = 0;
  632.           change_action(param_1,1,"YLT_Walk",0xffff81dc,0x24ed);
  633.         }
  634.       }
  635.       else {
  636.         change_action(param_1,0x4c,"YLT_Bloc_Tir_AV_Delai1",0xffff81dc,0x24e4);
  637.         *(undefined4 *)(param_2 + 0xbc) = 0;
  638.         *(undefined2 *)(param_2 + 0x182) = 1;
  639.       }
  640.     }
  641.     iVar3 = FUN_80024afc(param_2 + 0x74);
  642.     if (iVar3 == 0) {
  643.       FUN_80065dec(param_1,param_2);
  644.       iVar3 = *(int *)(param_2 + 0x50);
  645.       if (iVar3 < 1) {
  646.         iVar3 = -iVar3;
  647.       }
  648.       if ((iVar3 < 0x708) && (iVar3 = FUN_8003758c(param_1,1), iVar3 == 0)) {
  649.         FUN_80026e48(param_1,0xffffe000);
  650.       }
  651.       uVar5 = FUN_80022a08(param_1);
  652.       iVar3 = FUN_80024460(uVar5,0x10);
  653.       if (iVar3 == 0) {
  654.         FUN_800628cc(param_1,param_2);
  655.       }
  656.       else {
  657.         FUN_80062834(param_1,param_2);
  658.       }
  659.       uVar5 = FUN_80022a08(param_1);
  660.       iVar3 = FUN_80024460(uVar5,2);
  661.       if ((iVar3 != 0) && (*(int *)(param_2 + 0xbc) == 0)) {
  662.         FUN_80024da4(param_1,0x23);
  663.         return 1;
  664.       }
  665.       iVar3 = FUN_80064ea4(param_1,param_2);
  666.       if (iVar3 == 1) {
  667.         return 1;
  668.       }
  669.       iVar3 = FUN_80063e90(param_1,param_2);
  670.       if (iVar3 != 0) {
  671.         return 1;
  672.       }
  673.       iVar3 = FUN_800240d4(param_1,1);
  674.       if (iVar3 != 0) {
  675.         return 1;
  676.       }
  677.       if (_DAT_ffff8b30 < 4) {
  678.         _DAT_ffff8b30 = _DAT_ffff8b30 + 1;
  679.         return 1;
  680.       }
  681.       iVar3 = param_2 + 0x170;
  682.       FUN_80022e44(param_1,iVar3);
  683.       *(undefined4 *)(param_2 + 0x178) = 0;
  684.       FUN_8004db84(iVar3,iVar3);
  685.       FUN_8004d8e0(iVar3,iVar3,0x14000);
  686.       FUN_8002535c(param_1,iVar3);
  687.       *(undefined4 *)(param_2 + 0x40) = 0;
  688.       FUN_800647b4(param_1,param_2);
  689.       *(undefined4 *)(param_2 + 100) = 1;
  690.       _DAT_ffff8b30 = 0;
  691.       return 1;
  692.     }
  693.     FUN_80064058(param_1,param_2);
  694.     *(undefined4 *)(param_2 + 0x44) = 0;
  695.     return 1;
  696.   }
  697.   if (iVar3 == 0x1d) goto LAB_8006f624;
  698.   if (iVar3 == 0x17) {
  699.     FUN_80026460(param_1,1);
  700.     *(undefined4 *)(param_2 + 0x38) = 100;
  701.     FUN_80026ffc(param_1,0);
  702.     return 1;
  703.   }
  704.   if (iVar3 == 100) {
  705.     FUN_800258d4(param_1,0x1e,0);
  706.     _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  707.     FUN_8003db2c(1,0);
  708.     FUN_800663cc(param_1,param_2);
  709.     FUN_80063834();
  710.     FUN_8002583c(param_1,param_2);
  711.     thunk_FUN_80051ce0(param_1,param_2 + 0x10);
  712.     thunk_FUN_8005209c(param_1,param_2 + 0x10);
  713.     FUN_80063834();
  714.     FUN_80044710(1);
  715.     FUN_8003dc94();
  716.     FUN_800629cc(param_1);
  717.     FUN_800525a8(param_1,1);
  718.     *(undefined4 *)(param_2 + 0xb4) = 0;
  719.     *(undefined4 *)(param_2 + 0xd8) = 0;
  720.     *(undefined4 *)(param_2 + 0x100) = 0;
  721.     *(undefined4 *)(param_2 + 0xa4) = 0;
  722.     *(undefined4 *)(param_2 + 0xa8) = 0;
  723.     *(undefined4 *)(param_2 + 0xac) = 0;
  724.     *(undefined2 *)(param_2 + 0x104) = 0;
  725.     FUN_80024da4(param_1,0);
  726.     FUN_8004432c();
  727.     iVar3 = FUN_80022594(param_1);
  728.     if (iVar3 < 1) {
  729.       FUN_800270fc(param_1,(int)DAT_800b996c);
  730.       _DAT_ffff821c = DAT_800b997c;
  731.       FUN_800720cc();
  732.       FUN_800745b0();
  733.       *(undefined4 *)(param_2 + 0x5c) = 0;
  734.     }
  735.     else {
  736.       FUN_80032ca8(8,0);
  737.       *(undefined4 *)(param_2 + 0x5c) = 1;
  738.     }
  739.     *(undefined4 *)(param_2 + 0x134) = 0;
  740.     *(undefined4 *)(param_2 + 0x130) = 0;
  741.     *(undefined4 *)(param_2 + 300) = 0;
  742.     FUN_800258d4(param_1,0x1c,1);
  743.     FUN_8003e044();
  744.     FUN_80038858(1);
  745.     FUN_80026ffc(param_1,5);
  746.     *(undefined2 *)(param_2 + 0xc4) = 0;
  747.     FUN_80092400();
  748.     FUN_80026f9c(param_1,0,0,0);
  749.     puVar12 = *(uint **)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18);
  750.     *puVar12 = *puVar12 & 0xffffffef;
  751.     sVar1 = *(short *)(param_2 + 0xd4);
  752.     if ((sVar1 == 0) || (sVar1 == 6)) {
  753.       FUN_8003af88(param_1,7);
  754.       FUN_8003aff4(param_1,8);
  755.       change_action(param_1,5,0xffff81f4,0xffff81dc,0x2071);
  756.       return 1;
  757.     }
  758.     if (sVar1 == 8) {
  759.       change_action(param_1,0x38,"BNT_NageAttente",0xffff81dc,0x2078);
  760.       *(undefined4 *)(param_2 + 0x124) = 1;
  761.       return 1;
  762.     }
  763.     if (sVar1 != 1) {
  764.       return 1;
  765.     }
  766.     FUN_8003e044();
  767.     FUN_8003af88(param_1,7);
  768.     FUN_8003aff4(param_1,8);
  769.     change_action(param_1,5,0xffff81f4,0xffff81dc,0x2084);
  770.     *(undefined4 *)(param_2 + 0x38) = 0xb;
  771.     *(undefined2 *)(param_2 + 0x104) = 0;
  772.     change_action(param_1,5,0xffff81f4,0xffff81dc,0x2088);
  773.     _DAT_ffff8b30 = 0x1f;
  774.     return 1;
  775.   }
  776.   if (iVar3 == 0x16) {
  777.     FUN_800663cc(param_1,param_2);
  778.     FUN_80038858(0);
  779.     iVar3 = FUN_800375cc(param_1);
  780.     if (iVar3 == 0) {
  781.       FUN_8003db2c(1,_DAT_ffff8b30);
  782.       _DAT_ffff8b30 = _DAT_ffff8b30 + -2;
  783.       return 1;
  784.     }
  785.     iVar3 = FUN_8003758c(param_1,0x75);
  786.     if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0xffffffff), iVar3 == 0)) {
  787.       FUN_8003db2c(1,0);
  788.       change_action(param_1,0x75,"BNT_PafMortInstantanee",0xffff81dc,0x200b);
  789.       return 1;
  790.     }
  791.     _DAT_ffff8b30 = 0x1f;
  792.     FUN_80024da4(param_1,100);
  793.     return 1;
  794.   }
  795.   if (iVar3 == 0x2b) {
  796.     FUN_80038858(0);
  797.     _DAT_ffff8b30 = 0x1f;
  798.     *(undefined4 *)(param_2 + 0xd8) = 0;
  799.     FUN_80024da4(param_1,100);
  800.     return 1;
  801.   }
  802.   if (iVar3 == 0x60) {
  803.     FUN_80062378(param_1,param_2);
  804.     _DAT_ffff8b14 = _DAT_ffff8b14 + 1;
  805.     iVar3 = FUN_8003dd18();
  806.     if ((iVar3 == 0) && (iVar3 = FUN_80024afc(param_2 + 0x74), iVar3 != 0)) {
  807.       iVar3 = FUN_800231fc();
  808.       if (iVar3 < 0) {
  809.         iVar3 = FUN_800231fc();
  810.         iVar3 = -iVar3;
  811.       }
  812.       else {
  813.         iVar3 = FUN_800231fc();
  814.       }
  815.       if (iVar3 < 0x33) {
  816.         iVar3 = FUN_8002318c();
  817.         if (iVar3 < 0) {
  818.           iVar3 = FUN_8002318c();
  819.           iVar3 = -iVar3;
  820.         }
  821.         else {
  822.           iVar3 = FUN_8002318c();
  823.         }
  824.         if ((iVar3 < 0x33) && (_DAT_ffff8b14 < 0x1f5)) {
  825.           return 1;
  826.         }
  827.       }
  828.     }
  829.     _DAT_ffff8b14 = 0;
  830.     change_action(param_1,0,0xffff81e4,0xffff81dc,0x1ff1);
  831.     FUN_80064058(param_1,param_2);
  832.     return 1;
  833.   }
  834.   if (iVar3 == 0x14) {
  835.     FUN_8003db2c(1,0);
  836.     *(undefined4 *)(param_2 + 0xac) = 0;
  837.     *(undefined4 *)(param_2 + 0xa8) = 0;
  838.     *(undefined4 *)(param_2 + 0xa4) = 0;
  839.     FUN_80044710(9);
  840.     if (*(short *)(param_2 + 0x154) != 0) {
  841.       if (*(short *)(param_2 + 0x154) == 1) {
  842.         change_action(param_1,0xffffffff,"BNT_GrappinRecule",0xffff81dc,0x1fb9);
  843.         *(undefined4 *)(param_2 + 0x158) = 0;
  844.       }
  845.       else {
  846.         change_action(param_1,0xffffffff,"BNT_GrappinAvance",0xffff81dc,0x1fbc);
  847.         *(undefined4 *)(param_2 + 0x158) = 1;
  848.       }
  849.       *(short *)(param_2 + 0x156) = *(short *)(param_2 + 0x156) + 1;
  850.       *(undefined2 *)(param_2 + 0x154) = 0;
  851.     }
  852.     *(undefined4 *)(param_2 + 0x38) = 0x14;
  853.     iVar3 = FUN_8002326c(2);
  854.     if ((iVar3 == 0) && (iVar3 = FUN_80074278(param_1,(int)*(short *)(param_2 + 0x156)), iVar3 == 0)
  855.        ) {
  856.       return 1;
  857.     }
  858.     *(undefined4 *)(param_2 + 0x15c) = 1;
  859.     *(undefined2 *)(param_2 + 0x156) = 0;
  860.     FUN_800256e0(param_1,0xf000);
  861.     FUN_80063834();
  862.     *(undefined4 *)(param_2 + 0x68) = 1;
  863.     if (*(int *)(param_2 + 0x158) == 0) {
  864.       *(undefined4 *)(param_2 + 0x40) = 1;
  865.       change_action(param_1,4,"YLT_montee",0xffff81dc,0x1fd7);
  866.       *(undefined4 *)(param_2 + 0xbc) = 0;
  867.     }
  868.     else {
  869.       *(undefined4 *)(param_2 + 0x40) = 2;
  870.       change_action(param_1,0x59,"YLT_SautMontee2",0xffff81dc,0x1fd4);
  871.       *(undefined4 *)(param_2 + 0xbc) = 0;
  872.     }
  873.     FUN_800647b4(param_1,param_2);
  874.     *(undefined4 *)(param_2 + 0x58) = 1;
  875.     return 1;
  876.   }
  877.   if (iVar3 == 0x13) {
  878.     _DAT_ffff8b30 = _DAT_ffff8b30 + 1;
  879.     FUN_800266b8(param_1,0x1000);
  880.     FUN_800266c4(param_1,0x1000);
  881.     iVar3 = FUN_8002326c(2);
  882.     if (iVar3 != 0) {
  883.       FUN_8003dba8(0xa0);
  884.       FUN_80063fc4(param_1,param_2);
  885.       *(undefined4 *)(param_2 + 0xb4) = 1;
  886.       return 1;
  887.     }
  888.     iVar3 = FUN_800240d4(param_1,1);
  889.     if (((iVar3 != 0) && (iVar3 = FUN_8003758c(param_1,0xffffffff), iVar3 == 0)) &&
  890.        (10 < _DAT_ffff8b30)) {
  891.       uVar5 = FUN_80022a08(param_1);
  892.       iVar3 = FUN_80024460(uVar5,2);
  893.       if (iVar3 != 0) {
  894.         *(undefined4 *)(param_2 + 0xb4) = 1;
  895.         FUN_8003dba8(0xa0);
  896.         FUN_80024da4(param_1,0x23);
  897.         return 1;
  898.       }
  899.       *(undefined4 *)(param_2 + 0xb4) = 1;
  900.       FUN_8003dba8(0xa0);
  901.       FUN_80064058(param_1,param_2);
  902.       change_action(param_1,0,0xffff81e4,0xffff81dc,0x1f8a);
  903.       return 1;
  904.     }
  905.     iVar3 = FUN_800375cc(param_1);
  906.     if (iVar3 == 0) {
  907.       return 1;
  908.     }
  909.     FUN_8003dba8(0xa0);
  910.     if (*(short *)(param_2 + 0x104) < 0x32) {
  911.       iVar3 = FUN_80022594(param_1);
  912.       if (iVar3 < 1) {
  913.         *(undefined2 *)(param_2 + 0x104) = 0x34;
  914.         FUN_800270fc(param_1,0);
  915.       }
  916.     }
  917.     else {
  918.       FUN_800270fc(param_1,0);
  919.     }
  920.     *(undefined4 *)(param_2 + 0x58) = 1;
  921.     *(undefined4 *)(param_2 + 0xb4) = 1;
  922.     *(undefined4 *)(param_2 + 0x100) = 0;
  923.     change_action(param_1,5,0xffff81f4,0xffff81dc,0x1fa8);
  924.     iVar3 = FUN_800240d4(param_1,1);
  925.     if (iVar3 != 0) {
  926.       FUN_80064058(param_1,param_2);
  927.       return 1;
  928.     }
  929.     FUN_800647b4(param_1,param_2);
  930.     return 1;
  931.   }
  932.   if (iVar3 == 0x12) {
  933.     iVar3 = FUN_800375cc(param_1);
  934.     if (iVar3 == 0) {
  935.       return 1;
  936.     }
  937.     FUN_80026ffc(param_1,5);
  938.     FUN_8003dba8(0xa0);
  939.     if (*(short *)(param_2 + 0x104) < 0x32) {
  940.       iVar3 = FUN_80022594(param_1);
  941.       if (iVar3 < 1) {
  942.         *(undefined2 *)(param_2 + 0x104) = 0x34;
  943.         FUN_800270fc(param_1,0);
  944.         FUN_8009a944();
  945.       }
  946.     }
  947.     else {
  948.       FUN_800270fc(param_1,0);
  949.       FUN_8009a944();
  950.     }
  951.     *(undefined4 *)(param_2 + 0xb4) = 1;
  952.     *(undefined4 *)(param_2 + 0x100) = 0;
  953.     change_action(param_1,0x38,"BNT_NageAttente",0xffff81dc,0x1f5b);
  954.     FUN_80024da4(param_1,9);
  955.     FUN_80024dfc(param_1,1);
  956.     *(undefined4 *)(param_2 + 0x120) = 0;
  957.     *(undefined4 *)(param_2 + 0xbc) = 0;
  958.     return 1;
  959.   }
  960.   if (iVar3 == 0x11) {
  961.     iVar3 = FUN_80024afc(param_2 + 0xa4);
  962.     if (iVar3 == 0) {
  963.       FUN_800256c8(param_1,0);
  964.       FUN_800256d4(param_1,0);
  965.       FUN_800256e0(param_1,0);
  966.     }
  967.     else {
  968.       if ((*(short *)(param_2 + 0x12a) == 0) && (*(short *)(param_2 + 0x104) != 2)) {
  969.         FUN_80026e54(param_1,0);
  970.         FUN_80026e48(param_1,0);
  971.         FUN_80026e60(param_1,0);
  972.       }
  973.     }
  974.     _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  975.     iVar3 = FUN_800375cc(param_1);
  976.     if (iVar3 == 0) {
  977.       return 1;
  978.     }
  979.     FUN_8003dba8(0xa0);
  980.     if (*(short *)(param_2 + 0x104) < 0x32) {
  981.       iVar3 = FUN_80022594(param_1);
  982.       if (iVar3 < 1) {
  983.         *(undefined2 *)(param_2 + 0x104) = 0x34;
  984.         FUN_800270fc(param_1,0);
  985.       }
  986.     }
  987.     else {
  988.       FUN_800270fc(param_1,0);
  989.     }
  990.     *(undefined4 *)(param_2 + 0xb4) = 1;
  991.     FUN_80064058(param_1,param_2);
  992.     return 1;
  993.   }
  994.   if (iVar3 == 99) {
  995.     _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  996.     iVar3 = FUN_800375cc(param_1);
  997.     if (iVar3 == 0) {
  998.       return 1;
  999.     }
  1000.     FUN_8003dba8(0xa0);
  1001.     if (*(short *)(param_2 + 0x104) < 0x32) {
  1002.       iVar3 = FUN_80022594(param_1);
  1003.       if (iVar3 < 1) {
  1004.         *(undefined2 *)(param_2 + 0x104) = 0x34;
  1005.         FUN_800270fc(param_1,0);
  1006.       }
  1007.     }
  1008.     else {
  1009.       FUN_800270fc(param_1,0);
  1010.     }
  1011.     *(undefined4 *)(param_2 + 0xb4) = 1;
  1012.     change_action(param_1,0xb,"JAC_SusAttente",0xffff81dc,0x1eff);
  1013.     FUN_80024da4(param_1,0xc);
  1014.     return 1;
  1015.   }
  1016.   if (iVar3 == 0xf) {
  1017.     FUN_800663cc(param_1,param_2);
  1018.     FUN_80064b00(param_1,param_2);
  1019.     *(undefined4 *)(param_1 + 0x34) = 0;
  1020.     _DAT_ffff8b4c = 0;
  1021.     *(undefined4 *)(param_2 + 0x100) = 1;
  1022.     *(undefined4 *)(param_2 + 0xb4) = 0;
  1023.     *(undefined4 *)(param_2 + 0xbc) = 0;
  1024.     uVar2 = FUN_80022740(param_1);
  1025.     iVar3 = param_2 + 0x84;
  1026.     *(undefined2 *)(param_2 + 0x104) = uVar2;
  1027.     FUN_80022844(param_1,iVar3);
  1028.     if (*(int *)(param_2 + 0x8c) < 0) {
  1029.       *(undefined4 *)(param_2 + 0x8c) = 0;
  1030.     }
  1031.     FUN_80065d10(param_1,param_2);
  1032.     iVar4 = FUN_8004d948(iVar3);
  1033.     if (0xc000 < iVar4) {
  1034.       FUN_8004db84(iVar3,iVar3);
  1035.       FUN_8004d8e0(iVar3,iVar3,0xc000);
  1036.     }
  1037.     if ((*(short *)(param_2 + 0x12a) != 1) &&
  1038.        ((iVar4 = FUN_800240d4(param_1,1), iVar4 == 0 || (*(short *)(param_2 + 0x104) == 2)))) {
  1039.       FUN_8002535c(param_1,iVar3);
  1040.     }
  1041.     _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  1042.     if (0x32 < *(short *)(param_2 + 0x104)) {
  1043.       *(undefined4 *)(param_2 + 0xd8) = 1;
  1044.     }
  1045.     FUN_80062f68(param_1,param_2);
  1046.     if ((*(short *)(param_2 + 0x104) < 0x33) && (iVar3 = FUN_80022594(param_1), 0 < iVar3)) {
  1047.       switch(*(undefined4 *)(param_2 + 0x38)) {
  1048.       case 0:
  1049.       case 1:
  1050.       case 5:
  1051.       case 10:
  1052.       case 0xb:
  1053.       case 0xe:
  1054.       case 0xf:
  1055.         goto LAB_8006e82c;
  1056.       case 7:
  1057.         if (*(short *)(param_2 + 0x104) == 2) {
  1058.           FUN_80026ffc(param_1,3);
  1059.           *(undefined4 *)(param_2 + 0x100) = 1;
  1060.         }
  1061.         FUN_80066414(param_1);
  1062.         change_action(param_1,0xffffffff,"CHG_PafEau",0xffff81dc,0x1e98);
  1063.         FUN_80024da4(param_1,0x12);
  1064.         *(undefined4 *)(param_2 + 0xbc) = 0;
  1065.         return 1;
  1066.       case 8:
  1067.         FUN_80066414(param_1);
  1068.         change_action(param_1,0x7d,"YLT_PafGi",0xffff81dc,0x1e4a);
  1069.         FUN_80026ffc(param_1,3);
  1070.         FUN_80024da4(param_1,99);
  1071.         return 1;
  1072.       default:
  1073.         change_action(param_1,0x71,"CHG_PafAir",0xffff81dc,0x1ed7);
  1074.         FUN_80066478(param_1,0x13);
  1075.         FUN_80066414(param_1);
  1076.         return 1;
  1077.       case 0xc:
  1078.         FUN_8003dc94();
  1079.       case 4:
  1080.         FUN_8003db2c(1,0);
  1081.       case 2:
  1082.       case 3:
  1083.       case 6:
  1084.         if (*(int *)(param_2 + 0x38) == 6) {
  1085.           FUN_800629cc(param_1);
  1086.         }
  1087.         FUN_80026ffc(param_1,3);
  1088.         if (*(short *)(param_2 + 0x104) == 2) {
  1089.           change_action(param_1,0x71,"CHG_PafAir",0xffff81dc,0x1eaf);
  1090.           *(undefined4 *)(param_2 + 0x100) = 0;
  1091.         }
  1092.         else {
  1093.           change_action(param_1,0x71,"CHG_PafAir",0xffff81dc,0x1eb3);
  1094.         }
  1095.         FUN_80066478(param_1,0x13);
  1096.         FUN_80066414(param_1);
  1097.         return 1;
  1098.       case 0x14:
  1099.         *(undefined4 *)(param_2 + 0x15c) = 1;
  1100.         *(undefined4 *)(param_2 + 0x58) = 1;
  1101.         *(undefined2 *)(param_2 + 0x156) = 0;
  1102.         FUN_80063834();
  1103.         *(undefined4 *)(param_2 + 0x68) = 1;
  1104.         if (*(int *)(param_2 + 0x158) == 0) {
  1105.           *(undefined4 *)(param_2 + 0x40) = 2;
  1106.           change_action(param_1,0x59,"YLT_SautMontee2",0xffff81dc,0x1ece);
  1107.         }
  1108.         else {
  1109.           *(undefined4 *)(param_2 + 0x40) = 1;
  1110.           change_action(param_1,4,"YLT_montee",0xffff81dc,0x1ecb);
  1111.         }
  1112.         FUN_80066478(param_1,0x13);
  1113.         FUN_80066414(param_1);
  1114.         return 1;
  1115.       }
  1116.     }
  1117.     FUN_80026ffc(param_1,5);
  1118.     if (*(short *)(param_2 + 0x104) == 0x35) {
  1119.       change_action(param_1,0xffffffff,"CHG_ChuteInfinieDepart",0xffff81dc,0x1e07);
  1120.       *(undefined4 *)(param_2 + 0x44) = 0;
  1121.       FUN_80063834();
  1122.       FUN_80024da4(param_1,0x1f);
  1123.       *(undefined4 *)(param_2 + 0xd8) = 0;
  1124.       FUN_8002214c(param_1,auStack208);
  1125.       local_c8 = local_c8 + 0x5dc000;
  1126.       FUN_8004eac4(auStack208,auStack192);
  1127.       FUN_800444dc(auStack192);
  1128.       local_c8 = local_c8 + -0x5dc000;
  1129.       FUN_8004eac4(auStack208,auStack192);
  1130.       FUN_800445a0(auStack192);
  1131.       return 1;
  1132.     }
  1133.     change_action(param_1,0x75,"BNT_PafMortInstantanee",0xffff81dc,0x1e20);
  1134.     puVar12 = *(uint **)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18);
  1135.     *puVar12 = *puVar12 | 0x10;
  1136.     if (*(int *)(param_2 + 0x164) != 0) {
  1137.       *(undefined2 *)(param_2 + 0x162) = 1;
  1138.       FUN_80064b00(param_1,param_2);
  1139.     }
  1140.     *(undefined4 *)(param_2 + 0xd8) = 0;
  1141.     _DAT_ffff8b30 = 0xa0;
  1142.     FUN_80024da4(param_1,0x16);
  1143.     return 1;
  1144.   }
  1145.   if (iVar3 == 9) {
  1146.     FUN_8002643c(param_1,0);
  1147.     iVar3 = FUN_8003758c(param_1,0x38);
  1148.     if (iVar3 != 0) {
  1149.       *(undefined4 *)(param_2 + 0xbc) = 0;
  1150.     }
  1151.     FUN_800657d8(param_1,param_2);
  1152.     *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  1153.     FUN_80062378(param_1,param_2);
  1154.     if ((*(int *)(param_2 + 0x34) == 0) ||
  1155.        (((iVar3 = FUN_80023a8c(2), iVar3 == 0 && (iVar3 = FUN_80062a3c(param_1,param_2), iVar3 != 0)
  1156.          ) || (*(int *)(param_2 + 0x44) < 0x18)))) {
  1157.       if (_DAT_ffff8b24 != 0) {
  1158.         FUN_8002214c(param_1,&local_2f0);
  1159.         local_2e8 = local_2e8 + 0x1f4000;
  1160.         if (*(int *)(param_2 + 0x11c) < local_2e8) {
  1161.           FUN_8002572c(param_1,-_DAT_ffff8b24 / 7);
  1162.           _DAT_ffff8b24 = _DAT_ffff8b24 - _DAT_ffff8b24 / 7;
  1163.           _DAT_ffff8ae8 = _DAT_ffff8ae8 - _DAT_ffff8ae8 / 5;
  1164.         }
  1165.         else {
  1166.           FUN_8002572c(param_1,-_DAT_ffff8b24 / 0x1e);
  1167.           _DAT_ffff8b24 = _DAT_ffff8b24 - _DAT_ffff8b24 / 0x1e;
  1168.           _DAT_ffff8ae8 = _DAT_ffff8ae8 - _DAT_ffff8ae8 / 0xf;
  1169.         }
  1170.       }
  1171.     }
  1172.     else {
  1173.       if (*(int *)(param_2 + 0x34) < 1) {
  1174.         iVar3 = FUN_80062a3c(param_1,param_2);
  1175.         if (iVar3 == 0) {
  1176.           if (0 < _DAT_ffff8ae8) {
  1177.             _DAT_ffff8ae8 = 0;
  1178.           }
  1179.           _DAT_ffff8ae8 = _DAT_ffff8ae8 + -0x14;
  1180.           if (_DAT_ffff8ae8 < -0x8f) {
  1181.             _DAT_ffff8ae8 = -0x8f;
  1182.           }
  1183.         }
  1184.         else {
  1185.           FUN_8002572c(param_1,-_DAT_ffff8b24 / 7);
  1186.           _DAT_ffff8b24 = _DAT_ffff8b24 - _DAT_ffff8b24 / 7;
  1187.           _DAT_ffff8ae8 = _DAT_ffff8ae8 - _DAT_ffff8ae8 / 5;
  1188.         }
  1189.       }
  1190.       else {
  1191.         iVar3 = FUN_800240d4(param_1,1);
  1192.         if (iVar3 == 0) {
  1193.           iVar3 = FUN_80062a3c(param_1,param_2);
  1194.           if ((iVar3 == 0) || (iVar3 = FUN_80023a8c(2), iVar3 != 0)) {
  1195.             if (_DAT_ffff8ae8 < 0) {
  1196.               _DAT_ffff8ae8 = 0;
  1197.             }
  1198.             _DAT_ffff8ae8 = _DAT_ffff8ae8 + 0x14;
  1199.             if (0x8f < _DAT_ffff8ae8) {
  1200.               _DAT_ffff8ae8 = 0x8f;
  1201.             }
  1202.           }
  1203.         }
  1204.         else {
  1205.           if (_DAT_ffff8b24 != 0) {
  1206.             FUN_8002572c(param_1,-_DAT_ffff8b24 / 7);
  1207.             _DAT_ffff8b24 = _DAT_ffff8b24 - _DAT_ffff8b24 / 7;
  1208.             _DAT_ffff8ae8 = _DAT_ffff8ae8 - _DAT_ffff8ae8 / 7;
  1209.           }
  1210.         }
  1211.       }
  1212.       iVar3 = FUN_80023234();
  1213.       if ((0x32 < iVar3) &&
  1214.          ((iVar3 = FUN_80062a3c(param_1,param_2), iVar3 == 0 ||
  1215.           (iVar3 = FUN_80023a8c(2), iVar3 != 0)))) {
  1216.         uVar5 = FUN_80023234();
  1217.         uVar16 = FUN_8002047c(uVar5);
  1218.         uVar16 = FUN_800211f0(0x678760ad,0x3f320fa4,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1219.         uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1220.         _DAT_ffff8ae8 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1221.       }
  1222.       iVar3 = FUN_80023234();
  1223.       if (iVar3 < 0x33) {
  1224.         iVar3 = FUN_80023234();
  1225.         if (iVar3 < -0x32) {
  1226.           iVar4 = _DAT_ffff8b24 + _DAT_ffff8ae8;
  1227.           uVar5 = FUN_80023234();
  1228.           uVar16 = FUN_8002047c(uVar5);
  1229.           uVar16 = FUN_80021308(0,0x40490000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1230.           uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0,0x40538000);
  1231.           uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1232.           iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1233.           if (iVar3 <= iVar4) {
  1234.             FUN_8002572c(param_1,_DAT_ffff8ae8);
  1235.             _DAT_ffff8b24 = _DAT_ffff8b24 + _DAT_ffff8ae8;
  1236.           }
  1237.         }
  1238.         else {
  1239.           if ((_DAT_ffff8b24 + _DAT_ffff8ae8 < 0x1001) && (-0x1001 < _DAT_ffff8b24 + _DAT_ffff8ae8))
  1240.           {
  1241.             FUN_8002572c(param_1);
  1242.             _DAT_ffff8b24 = _DAT_ffff8b24 + _DAT_ffff8ae8;
  1243.           }
  1244.         }
  1245.       }
  1246.       else {
  1247.         iVar4 = _DAT_ffff8b24 + _DAT_ffff8ae8;
  1248.         uVar5 = FUN_80023234();
  1249.         uVar16 = FUN_8002047c(uVar5);
  1250.         uVar16 = FUN_800212ec((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0,0x40490000);
  1251.         uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0,0x40538000);
  1252.         uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1253.         iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1254.         if (iVar4 <= iVar3) {
  1255.           FUN_8002572c(param_1,_DAT_ffff8ae8);
  1256.           _DAT_ffff8b24 = _DAT_ffff8b24 + _DAT_ffff8ae8;
  1257.         }
  1258.       }
  1259.     }
  1260.     iVar3 = FUN_800231c4();
  1261.     if (iVar3 < 0x33) {
  1262.       iVar3 = FUN_800231c4();
  1263.       if (iVar3 < -0x32) {
  1264.         uVar5 = FUN_800231c4();
  1265.         uVar16 = FUN_8002047c(uVar5);
  1266.         uVar16 = FUN_800211f0(0x88e368f1,0x3f34f8b5,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1267.         uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1268.         uVar5 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1269.         FUN_80025754(param_1,uVar5);
  1270.       }
  1271.     }
  1272.     else {
  1273.       uVar5 = FUN_800231c4();
  1274.       uVar16 = FUN_8002047c(uVar5);
  1275.       uVar16 = FUN_800211f0(0x88e368f1,0x3f34f8b5,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1276.       uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1277.       uVar5 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  1278.       FUN_80025754(param_1,uVar5);
  1279.     }
  1280.     iVar3 = FUN_80023a8c(5);
  1281.     if (iVar3 == 0) {
  1282.       iVar3 = FUN_80023a8c(6);
  1283.       if (iVar3 == 0) {
  1284.         _DAT_ffff8af0 = _DAT_ffff8af0 - _DAT_ffff8af0 / 5;
  1285.       }
  1286.       else {
  1287.         _DAT_ffff8af0 = _DAT_ffff8af0 + -0x28;
  1288.         if (_DAT_ffff8af0 < -0xa3) {
  1289.           _DAT_ffff8af0 = -0xa3;
  1290.         }
  1291.         FUN_80025754(param_1,_DAT_ffff8af0);
  1292.       }
  1293.     }
  1294.     else {
  1295.       _DAT_ffff8af0 = _DAT_ffff8af0 + 0x28;
  1296.       if (0xa3 < _DAT_ffff8af0) {
  1297.         _DAT_ffff8af0 = 0xa3;
  1298.       }
  1299.       FUN_80025754(param_1,_DAT_ffff8af0);
  1300.     }
  1301.     iVar3 = FUN_80023a8c(2);
  1302.     if ((((iVar3 != 0) && (0x17 < *(int *)(param_2 + 0x44))) &&
  1303.         (iVar3 = FUN_80062a3c(param_1,param_2), iVar3 != 0)) &&
  1304.        (iVar3 = FUN_800240d4(param_1,2), iVar3 != 0)) {
  1305.       puVar8 = (undefined4 *)FUN_80022f28(param_1,2);
  1306.       local_100 = *puVar8;
  1307.       local_fc = puVar8[1];
  1308.       local_f8 = puVar8[2];
  1309.       local_f4 = puVar8[3];
  1310.       FUN_80022930(param_1,param_2 + 0x170);
  1311.       if ((0xf < *(int *)(param_2 + 0x44)) &&
  1312.          (iVar3 = FUN_8004d870(param_2 + 0x170,&local_100), iVar3 < -0xa66)) {
  1313.         FUN_8003af88(param_1,7);
  1314.         FUN_8003aff4(param_1,8);
  1315.         FUN_800256e0(param_1,0x10000);
  1316.         *(undefined4 *)(param_2 + 0x40) = 0;
  1317.         *(undefined4 *)(param_2 + 0x58) = 1;
  1318.         FUN_8002643c(param_1);
  1319.         *(undefined4 *)(param_2 + 200) = 1;
  1320.         FUN_8009a958();
  1321.         *(undefined4 *)(param_2 + 0x44) = 0;
  1322.         *(undefined4 *)(param_2 + 0xbc) = 0;
  1323.         change_action(param_1,0x59,"YLT_SautMontee2",0xffff81dc,0x1d1c);
  1324.         FUN_800647b4(param_1,param_2);
  1325.         FUN_80024dfc(param_1,0);
  1326.         *(undefined4 *)(param_2 + 0x124) = 0;
  1327.         FUN_80063834();
  1328.         _DAT_ffff8b24 = 0;
  1329.         _DAT_ffff8b2c = 0;
  1330.         puVar12 = *(uint **)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18);
  1331.         *puVar12 = *puVar12 & 0xfffffbff;
  1332.         return 1;
  1333.       }
  1334.     }
  1335.     iVar3 = FUN_80062a3c(param_1,param_2);
  1336.     if ((iVar3 != 0) && (_DAT_ffff87f8 % 0x23 == 1)) {
  1337.       FUN_8002214c(param_1,auStack224);
  1338.       local_d8 = *(undefined4 *)(param_2 + 0x11c);
  1339.       FUN_8004eac4(auStack224,&local_f0);
  1340.       FUN_80093afc(local_f0,local_ec,local_e8);
  1341.     }
  1342.     iVar3 = FUN_8002326c(2);
  1343.     if (iVar3 != 0) {
  1344.       _DAT_ffff8b30 = 0;
  1345.     }
  1346.     iVar3 = FUN_80023a8c(2);
  1347.     if ((((iVar3 != 0) || (_DAT_ffff8b30 < 0x14)) && (0x17 < *(int *)(param_2 + 0x44))) &&
  1348.        (_DAT_ffff8b30 != -1)) {
  1349.       _DAT_ffff8b30 = _DAT_ffff8b30 + 1;
  1350.       *(int *)(param_2 + 0x120) = *(int *)(param_2 + 0x120) + -0x333;
  1351.       if (*(int *)(param_2 + 0x120) < -0x9000) {
  1352.         *(undefined4 *)(param_2 + 0x120) = 0xffff7000;
  1353.       }
  1354.       _DAT_ffff8aec = *(int *)(param_2 + 0x120) / 0x32;
  1355.       if (((*(int *)(param_2 + 0xbc) != 0) || (iVar3 = FUN_80062a3c(param_1,param_2), iVar3 != 0))
  1356.          && (*(int *)(param_2 + 0x120) < -0x6000)) {
  1357.         *(undefined4 *)(param_2 + 0x120) = 0xffffa000;
  1358.       }
  1359.       iVar3 = FUN_800240d4(param_1,1);
  1360.       if ((iVar3 == 0) || (iVar3 = FUN_800240d4(param_1,2), iVar3 != 0)) {
  1361.         iVar3 = FUN_800240d4(param_1,2);
  1362.         if ((iVar3 == 0) || (iVar3 = FUN_80023a8c(2), iVar3 != 0)) {
  1363.           FUN_80026e48(param_1,*(undefined4 *)(param_2 + 0x120));
  1364.           iVar3 = *(int *)(param_2 + 0xbc);
  1365.         }
  1366.         else {
  1367.           FUN_80026e48(param_1,0);
  1368.           iVar3 = *(int *)(param_2 + 0xbc);
  1369.         }
  1370.       }
  1371.       else {
  1372.         iVar3 = param_2 + 0x170;
  1373.         FUN_80022930(param_1,iVar3);
  1374.         *(undefined4 *)(param_2 + 0x178) = 0;
  1375.         FUN_8004db84(iVar3,iVar3);
  1376.         FUN_8004d8e0(iVar3,iVar3,-*(int *)(param_2 + 0x120));
  1377.         FUN_80025350(param_1,iVar3);
  1378.         iVar3 = *(int *)(param_2 + 0xbc);
  1379.       }
  1380.       if (iVar3 == 0) {
  1381.         change_action(param_1,0x39,"BNT_NageAvance",0xffff81dc,0x1d83);
  1382.       }
  1383.       FUN_8002643c(param_1,0);
  1384.       FUN_800245e8(param_1,2,param_2 + 0x94);
  1385.       iVar3 = *(int *)(param_2 + 0x34);
  1386.       goto code_r0x8006e440;
  1387.     }
  1388.     iVar3 = FUN_8002326c(2);
  1389.     if (iVar3 == 0) {
  1390.       iVar3 = FUN_800245e8(param_1,2,param_2 + 0x94);
  1391.       if (((iVar3 != 0) && (*(int *)(param_2 + 0xbc) == 0)) &&
  1392.          ((iVar3 = FUN_8003758c(param_1,0x79), iVar3 == 0 &&
  1393.           (iVar3 = FUN_8003758c(param_1,0x78), iVar3 == 0)))) {
  1394.         change_action(param_1,0x38,"BNT_NageAttente",0xffff81dc,0x1d91);
  1395.       }
  1396.       FUN_800266b8(param_1,0);
  1397.       FUN_800266c4(param_1,0);
  1398.       FUN_800266d0(param_1,0);
  1399.       iVar3 = FUN_800240d4(param_1,2);
  1400.       if (iVar3 != 0) {
  1401.         *(undefined4 *)(param_2 + 0x120) = 0;
  1402.         FUN_80026e48(param_1,0);
  1403.         iVar3 = *(int *)(param_2 + 0x34);
  1404.         goto code_r0x8006e440;
  1405.       }
  1406.       if (*(int *)(param_2 + 0x120) < 1) {
  1407.         FUN_80026e48(param_1);
  1408.         *(int *)(param_2 + 0x120) = *(int *)(param_2 + 0x120) - _DAT_ffff8aec;
  1409.         if (-1 < *(int *)(param_2 + 0x120)) {
  1410.           *(undefined4 *)(param_2 + 0x120) = 0;
  1411.           FUN_80026e54(param_1,0);
  1412.           FUN_80026e48(param_1,0);
  1413.           FUN_80026e60(param_1,0);
  1414.         }
  1415.         FUN_8002643c(param_1,0);
  1416.         iVar3 = *(int *)(param_2 + 0x34);
  1417.         goto code_r0x8006e440;
  1418.       }
  1419.       FUN_80026e54(param_1,0);
  1420.       FUN_80026e48(param_1,0);
  1421.       FUN_80026e60(param_1,0);
  1422.     }
  1423.     iVar3 = *(int *)(param_2 + 0x34);
  1424. code_r0x8006e440:
  1425.     if ((iVar3 == 0) && (iVar3 = FUN_80062a3c(param_1,param_2), iVar3 == 0)) {
  1426.       FUN_8002214c(param_1,&local_2f0);
  1427.       local_2e8 = local_2e8 + 0x1f4000;
  1428.       if (*(int *)(param_2 + 0x11c) < local_2e8) {
  1429.         FUN_800256e0(param_1,0x4000);
  1430.       }
  1431.     }
  1432.     FUN_8002214c(param_1,&local_2f0);
  1433.     local_2e8 = local_2e8 + 0x64000;
  1434.     if (local_2e8 <= *(int *)(param_2 + 0x11c)) {
  1435.       return 1;
  1436.     }
  1437.     iVar3 = FUN_800240d4(param_1,6);
  1438.     if (iVar3 == 0) {
  1439.       return 1;
  1440.     }
  1441.     local_2e8 = *(int *)(param_2 + 0x11c) + -0x64000;
  1442.     FUN_8002643c(param_1,0);
  1443.     FUN_8002583c(param_1,&local_2f0);
  1444.     return 1;
  1445.   }
  1446.   if (iVar3 == 0xe) {
  1447.     *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  1448.     *(undefined4 *)(param_1 + 0x34) = 0;
  1449.     _DAT_ffff8b4c = 0;
  1450.     iVar3 = FUN_800375cc(param_1);
  1451.     if (iVar3 == 0) {
  1452.       return 1;
  1453.     }
  1454.     if (*(int *)(param_1 + 0x1c) != *(int *)(_DAT_ffff88c0 + 0xf0)) {
  1455.       FUN_80026f0c(param_1);
  1456.     }
  1457.     iVar3 = FUN_80024afc(param_2 + 0x74);
  1458.     if (iVar3 != 0) {
  1459.       FUN_80064058(param_1,param_2);
  1460.       *(undefined4 *)(param_2 + 0x44) = 6;
  1461.       return 1;
  1462.     }
  1463.     change_action(param_1,0,0xffff81e4,0xffff81dc,0x1c3d);
  1464.     _DAT_ffff8b20 = 0xffffe000;
  1465.     FUN_800642a8(param_1,param_2);
  1466.     return 1;
  1467.   }
  1468.   if (iVar3 == 0xd) {
  1469.     FUN_80062378(param_1,param_2);
  1470.     FUN_80063038(param_2,auStack352);
  1471.     FUN_80022930(param_1,auStack336);
  1472.     *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  1473.     FUN_80044360(auStack320);
  1474.     iVar3 = FUN_8004d870(auStack336,auStack320);
  1475.     if (iVar3 < -0x3ff) {
  1476.       FUN_8002214c(param_1,auStack272);
  1477.       local_108 = local_108 + 0x32000;
  1478.       iVar3 = FUN_80073ab4(auStack272,auStack336,0x96000,auStack304,auStack288);
  1479.       if (iVar3 == 0) {
  1480.         change_action(param_1,0x11,"YLT_Accrochage",0xffff81dc,0x1bea);
  1481.       }
  1482.       else {
  1483.         change_action(param_1,0xa2,"ChY_Accrochage",0xffff81dc,0x1be8);
  1484.       }
  1485.     }
  1486.     else {
  1487.       change_action(param_1,0x11,"YLT_Accrochage",0xffff81dc,0x1be1);
  1488.     }
  1489.     iVar3 = FUN_8002326c(2);
  1490.     if (iVar3 != 0) {
  1491.       FUN_800256e0(param_1,0xf000);
  1492.       FUN_800256d4(param_1,0x2000);
  1493.       *(undefined4 *)(param_2 + 0x40) = 2;
  1494.       *(undefined4 *)(param_2 + 0x58) = 1;
  1495.       *(undefined4 *)(param_1 + 0x34) = 0;
  1496.       _DAT_ffff8b4c = 0;
  1497.       FUN_800647b4(param_1,param_2);
  1498.       if (*(int *)(param_1 + 0x1c) != *(int *)(_DAT_ffff88c0 + 0xf0)) {
  1499.         FUN_80026f0c(param_1);
  1500.       }
  1501.       FUN_800581e0(param_1,0);
  1502.       return 1;
  1503.     }
  1504.     if (*(int *)(param_2 + 0x44) < 5) {
  1505.       return 1;
  1506.     }
  1507.     *(undefined4 *)(param_2 + 0x44) = 0;
  1508.     iVar3 = FUN_8004d870(auStack336,auStack352);
  1509.     if (iVar3 < 0xb50) {
  1510.       iVar3 = FUN_8004d870(auStack336,auStack352);
  1511.       if (-0xb50 < iVar3) {
  1512.         return 1;
  1513.       }
  1514.       *(undefined4 *)(param_2 + 0x70) = 0;
  1515.       *(undefined4 *)(param_2 + 0x40) = 2;
  1516.       if (*(int *)(param_1 + 0x1c) != *(int *)(_DAT_ffff88c0 + 0xf0)) {
  1517.         FUN_80026f0c(param_1);
  1518.       }
  1519.       FUN_800581e0(param_1,0);
  1520.       *(undefined4 *)(param_1 + 0x34) = 0;
  1521.       _DAT_ffff8b4c = 0;
  1522.       FUN_800647b4(param_1,param_2);
  1523.       *(undefined4 *)(param_2 + 0x44) = 0;
  1524.       *(undefined4 *)(param_2 + 0x58) = 1;
  1525.       FUN_800256d4(param_1,0x5000);
  1526.       return 1;
  1527.     }
  1528.     *(undefined4 *)(param_2 + 0x44) = 0;
  1529.     change_action(param_1,0x20,"YLT_AccrochageRemontee",0xffff81dc,0x1c09);
  1530.     FUN_800581e0(param_1,0);
  1531.     FUN_80024da4(param_1,0xe);
  1532.     return 1;
  1533.   }
  1534.   if (iVar3 == 0xc) {
  1535.     _DAT_ffff8b18 = _DAT_ffff8b18 + 1;
  1536.     *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  1537.     FUN_80062378(param_1,param_2);
  1538.     iVar3 = *(int *)(param_2 + 0x50) * 0x40;
  1539.     if (iVar3 < 0) {
  1540.       iVar3 = iVar3 + 0x7f;
  1541.     }
  1542.     FUN_80025704(param_1,iVar3 >> 7);
  1543.     if ((((*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18) + 0x99
  1544.                     ) != '\0') && (iVar3 = FUN_8002326c(0xb), iVar3 == 0)) &&
  1545.         (iVar3 = FUN_8002326c(2), iVar3 == 0)) && (_DAT_ffff8b18 < 0x14)) {
  1546.       return 1;
  1547.     }
  1548.     FUN_8002643c(param_1,0);
  1549.     FUN_800655e0(param_1,param_2);
  1550.     iVar3 = FUN_8002326c(0xb);
  1551.     if (((iVar3 != 0) && (*(int *)(param_2 + 0x38) == 8)) && (*(int *)(param_2 + 0xbc) == 0)) {
  1552.       *(undefined4 *)(param_2 + 0xbc) = 2;
  1553.       if (*(short *)(param_2 + 0xcc) == 0) {
  1554.         change_action(param_1,0x1b,"YLT_GiPoingTir1",0xffff81dc,7000);
  1555.       }
  1556.       else {
  1557.         if (*(short *)(param_2 + 0xcc) == 1) {
  1558.           change_action(param_1,0x1a,"YLT_GiPoingTir2",0xffff81dc,0x1b5b);
  1559.         }
  1560.       }
  1561.     }
  1562.     iVar3 = FUN_800375cc(param_1);
  1563.     if (iVar3 != 0) {
  1564.       iVar3 = FUN_8003758c(param_1,0x6d);
  1565.       if (iVar3 != 0) {
  1566.         *(undefined4 *)(param_2 + 0xbc) = 0;
  1567.         *(undefined2 *)(param_2 + 0xcc) = 0;
  1568.         change_action(param_1,0xb,"JAC_SusAttente",0xffff81dc,0x1b66);
  1569.         iVar3 = *(int *)(param_2 + 0x4c);
  1570.         goto LAB_8006d298;
  1571.       }
  1572.       iVar3 = FUN_8003758c(param_1,0x6e);
  1573.       if (iVar3 != 0) {
  1574.         *(undefined4 *)(param_2 + 0xbc) = 0;
  1575.         *(undefined2 *)(param_2 + 0xcc) = 0;
  1576.         change_action(param_1,0xb,"JAC_SusAttente",0xffff81dc,0x1b6d);
  1577.         iVar3 = *(int *)(param_2 + 0x4c);
  1578.         goto LAB_8006d298;
  1579.       }
  1580.       iVar3 = FUN_8003758c(param_1,0x1d);
  1581.       if (iVar3 == 0) {
  1582.         iVar3 = FUN_8003758c(param_1,0x1e);
  1583.         if (iVar3 == 0) {
  1584.           iVar3 = FUN_8003758c(param_1,0x1b);
  1585.           if (iVar3 != 0) {
  1586.             *(undefined4 *)(param_2 + 0xbc) = 0;
  1587.             *(undefined2 *)(param_2 + 0xcc) = 1;
  1588.             change_action(param_1,0x1d,"YLT_GiPoingDelai1",0xffff81dc,0x1b81);
  1589.             iVar3 = *(int *)(param_2 + 0x4c);
  1590.             goto LAB_8006d298;
  1591.           }
  1592.           iVar3 = FUN_8003758c(param_1,0x1a);
  1593.           if (iVar3 != 0) {
  1594.             change_action(param_1,0x1e,"YLT_GiPoingDelai2",0xffff81dc,0x1b85);
  1595.             *(undefined4 *)(param_2 + 0xbc) = 0;
  1596.             *(undefined2 *)(param_2 + 0xcc) = 1;
  1597.           }
  1598.         }
  1599.         else {
  1600.           change_action(param_1,0x6e,"YLT_GiPoingFin2",0xffff81dc,0x1b79);
  1601.           *(undefined4 *)(param_2 + 0xbc) = 0;
  1602.           *(undefined2 *)(param_2 + 0xcc) = 0;
  1603.         }
  1604.       }
  1605.       else {
  1606.         change_action(param_1,0x6d,"YLT_GiPoingFin1",0xffff81dc,0x1b72);
  1607.         *(undefined4 *)(param_2 + 0xbc) = 0;
  1608.         *(undefined2 *)(param_2 + 0xcc) = 1;
  1609.       }
  1610.     }
  1611.     iVar3 = *(int *)(param_2 + 0x4c);
  1612. LAB_8006d298:
  1613.     if (((*(int *)(param_2 + 0x20) < iVar3) && (iVar3 = FUN_80024a9c(param_1,0x4b), iVar3 == 0)) &&
  1614.        ((*(int *)(param_2 + 0xbc) == 0 &&
  1615.         ((iVar3 = FUN_8003758c(param_1,0xb), iVar3 != 0 && (iVar3 = FUN_80062b1c(), iVar3 == 0))))))
  1616.     {
  1617.       change_action(param_1,10,"JAC_SusMarche",0xffff81dc,0x1b9a);
  1618.       FUN_80024da4(param_1,0xb);
  1619.       _DAT_ffff8ab0 = 0;
  1620.       _DAT_ffff8b30 = 0;
  1621.       _DAT_ffff8b50 = 0;
  1622.       return 1;
  1623.     }
  1624.     FUN_8002376c(2);
  1625.     *(undefined4 *)(param_2 + 0x38) = 8;
  1626.     iVar3 = FUN_8002376c(2);
  1627.     if (iVar3 != 0) {
  1628.       *(undefined4 *)(param_2 + 0x58) = 0;
  1629.     }
  1630.     iVar3 = FUN_8002326c(2);
  1631.     if ((iVar3 != 0) && (0xd < *(int *)(param_2 + 0x44))) {
  1632.       *(undefined4 *)(param_2 + 0x58) = 1;
  1633.       FUN_8002643c(param_1);
  1634.       FUN_800266ac(param_1,0x1e000);
  1635.       change_action(param_1,5,0xffff81f4,0xffff81dc,0x1bbf);
  1636.       FUN_80024da4(param_1,1);
  1637.       return 1;
  1638.     }
  1639.     iVar3 = FUN_80024a48(param_1,0x1d);
  1640.     if (iVar3 == 0) {
  1641.       return 1;
  1642.     }
  1643.     FUN_800647b4(param_1,param_2);
  1644.     FUN_800258d4(param_1,0x1d,0);
  1645.     return 1;
  1646.   }
  1647.   if (iVar3 != 0xb) {
  1648.     if (iVar3 != 8) {
  1649.       if (iVar3 == 0x5d) {
  1650.         *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  1651.         FUN_8004db84(&local_180,param_2 + 0xa4);
  1652.         FUN_8004d8e0(&local_180,&local_180,0x5000);
  1653.         FUN_80025350(param_1,&local_180);
  1654.         local_180 = *(undefined4 *)(param_2 + 0xa4);
  1655.         local_17c = *(undefined4 *)(param_2 + 0xa8);
  1656.         local_174 = *(undefined4 *)(param_2 + 0xb0);
  1657.         local_178 = 0;
  1658.         thunk_FUN_80051ce0(param_1,&local_180);
  1659.         if (3 < *(short *)(param_2 + 0xc4)) {
  1660.           change_action(param_1,2,0xffff81ec,0xffff81dc,0x17c2);
  1661.         }
  1662.         if (((*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18) +
  1663.                        0x99) == '\0') && (10 < *(short *)(param_2 + 0xc4))) ||
  1664.            (0x1e < *(short *)(param_2 + 0xc4))) {
  1665.           *(undefined4 *)(param_2 + 0xac) = 0;
  1666.           *(undefined4 *)(param_2 + 0xa8) = 0;
  1667.           *(undefined4 *)(param_2 + 0xa4) = 0;
  1668.           *(undefined2 *)(param_2 + 0xc4) = 0;
  1669.           FUN_800642a8(param_1,param_2);
  1670.         }
  1671.         iVar3 = FUN_800240d4(param_1,1);
  1672.         if (iVar3 != 0) {
  1673.           return 1;
  1674.         }
  1675.         *(undefined4 *)(param_2 + 0xac) = 0;
  1676.         *(undefined4 *)(param_2 + 0xa8) = 0;
  1677.         *(undefined4 *)(param_2 + 0xa4) = 0;
  1678.         FUN_800647b4(param_1,param_2);
  1679.         return 1;
  1680.       }
  1681.       if (iVar3 == 7) {
  1682.         *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  1683.         FUN_80026418(param_1,1);
  1684.         FUN_800266ac(param_1,0x600);
  1685.         FUN_80026840(param_1,0xa66,0x1000);
  1686.         if (*(int *)(param_2 + 0x44) < 8) {
  1687.           FUN_8003db2c(1,0xa0);
  1688.         }
  1689.         else {
  1690.           if (*(int *)(param_2 + 0x44) == 8) {
  1691.             FUN_8003db2c(1,0);
  1692.           }
  1693.         }
  1694.         FUN_80044710(0xc);
  1695.         FUN_800655e0(param_1,param_2);
  1696.         FUN_80062378(param_1,param_2);
  1697.         local_1d0 = 0x28000;
  1698.         local_1cc = 0x28000;
  1699.         local_1c8 = 0x23000;
  1700.         FUN_800266dc(param_1,0x1f8,&local_1d0);
  1701.         iVar6 = param_2 + 0xa4;
  1702.         FUN_800226d8(param_1,iVar6);
  1703.         iVar3 = FUN_8004d948(iVar6);
  1704.         FUN_80022930(param_1,&local_1f0);
  1705.         piVar14 = (int *)FUN_80022f28(param_1,1);
  1706.         local_1d0 = *piVar14;
  1707.         local_1cc = piVar14[1];
  1708.         local_1c8 = piVar14[2];
  1709.         local_1c4 = piVar14[3];
  1710.         FUN_80063038(param_2,&local_1e0);
  1711.         FUN_8004db84(&local_1e0);
  1712.         *(undefined4 *)(param_2 + 0x94) = local_1f0;
  1713.         *(undefined4 *)(param_2 + 0x98) = local_1ec;
  1714.         *(undefined4 *)(param_2 + 0x9c) = local_1e8;
  1715.         *(undefined4 *)(param_2 + 0xa0) = local_1e4;
  1716.         iVar10 = param_2 + 0xf0;
  1717.         puVar8 = (undefined4 *)FUN_800223d4(iVar10,0xe66,&local_1d0);
  1718.         uVar13 = puVar8[1];
  1719.         uVar11 = puVar8[2];
  1720.         uVar5 = puVar8[3];
  1721.         *(undefined4 *)(param_2 + 0xf0) = *puVar8;
  1722.         *(undefined4 *)(param_2 + 0xf4) = uVar13;
  1723.         *(undefined4 *)(param_2 + 0xf8) = uVar11;
  1724.         *(undefined4 *)(param_2 + 0xfc) = uVar5;
  1725.         iVar4 = FUN_80024afc(param_2 + 0x74);
  1726.         if (iVar4 == 0) {
  1727.           FUN_8004d8e0(&DAT_800b984c,&DAT_800b984c,_DAT_ffff8abc);
  1728.           FUN_8004d8e0(&DAT_800b984c,&DAT_800b984c,0xb33);
  1729.           puVar8 = (undefined4 *)FUN_800223d4(iVar10,0xf33,&DAT_800b984c);
  1730.           uVar13 = puVar8[1];
  1731.           uVar11 = puVar8[2];
  1732.           uVar5 = puVar8[3];
  1733.           *(undefined4 *)(param_2 + 0xf0) = *puVar8;
  1734.           *(undefined4 *)(param_2 + 0xf4) = uVar13;
  1735.           *(undefined4 *)(param_2 + 0xf8) = uVar11;
  1736.           *(undefined4 *)(param_2 + 0xfc) = uVar5;
  1737.         }
  1738.         iVar4 = param_2 + 0x94;
  1739.         *(undefined4 *)(param_2 + 0x94) = *(undefined4 *)(param_2 + 0xa4);
  1740.         *(undefined4 *)(param_2 + 0x98) = *(undefined4 *)(param_2 + 0xa8);
  1741.         *(undefined4 *)(param_2 + 0x9c) = *(undefined4 *)(param_2 + 0xac);
  1742.         *(undefined4 *)(param_2 + 0xa0) = *(undefined4 *)(param_2 + 0xb0);
  1743.         FUN_8004db84(iVar4,iVar4);
  1744.         puVar8 = (undefined4 *)FUN_800223d4(&local_1f0,0xccc,iVar4);
  1745.         uVar13 = puVar8[1];
  1746.         uVar11 = puVar8[2];
  1747.         uVar5 = puVar8[3];
  1748.         *(undefined4 *)(param_2 + 0x94) = *puVar8;
  1749.         *(undefined4 *)(param_2 + 0x98) = uVar13;
  1750.         *(undefined4 *)(param_2 + 0x9c) = uVar11;
  1751.         *(undefined4 *)(param_2 + 0xa0) = uVar5;
  1752.         FUN_8002599c(param_1,iVar10,iVar4,2);
  1753.         if ((_DAT_ffff8b34 < 5) && (_DAT_ffff8ac4 == 1)) {
  1754.           _DAT_ffff8b34 = _DAT_ffff8b34 + 1;
  1755.           FUN_8003db2c(1,0xa0);
  1756.         }
  1757.         else {
  1758.           iVar4 = FUN_800240d4(param_1,2);
  1759.           if ((iVar4 == 0) && ((8 < *(int *)(param_2 + 0x44) && (_DAT_ffff8ac4 != 0)))) {
  1760.             _DAT_ffff8ac4 = 0;
  1761.             _DAT_ffff8b34 = 0;
  1762.             FUN_8003db2c(1,0);
  1763.           }
  1764.         }
  1765.         iVar4 = FUN_800240d4(param_1,2);
  1766.         if (iVar4 == 0) {
  1767.           if (_DAT_ffff8b3c < 0xb) {
  1768.             _DAT_ffff8b3c = _DAT_ffff8b3c + 1;
  1769.           }
  1770.           else {
  1771.             _DAT_ffff8b3c = 0;
  1772.             _DAT_ffff8ac0 = 0;
  1773.           }
  1774.         }
  1775.         else {
  1776.           _DAT_ffff8b34 = _DAT_ffff8b34 + 1;
  1777.           _DAT_ffff8b3c = 0;
  1778.           if (4 < _DAT_ffff8b34) {
  1779.             FUN_8003db2c(1,100);
  1780.           }
  1781.           if (_DAT_ffff8ac0 == 0) {
  1782.             _DAT_ffff8ac0 = 1;
  1783.             FUN_8003db2c(1,0xa0);
  1784.             _DAT_ffff8ac4 = 1;
  1785.             _DAT_ffff8b34 = 0;
  1786.           }
  1787.           FUN_80066044(param_1,auStack432);
  1788.           FUN_8004db84(auStack432);
  1789.           FUN_80022f28(param_1,2);
  1790.           FUN_8004db84(auStack448,iVar6);
  1791.           FUN_8004d8e0(auStack432,auStack432,0xa000);
  1792.           FUN_8004dca8(auStack432,auStack432,iVar6);
  1793.           FUN_8002535c(param_1,auStack432);
  1794.         }
  1795.         iVar4 = FUN_800240d4(param_1,1);
  1796.         if (iVar4 != 0) {
  1797.           DAT_800b983c = *(undefined4 *)(param_2 + 0xa4);
  1798.           DAT_800b9840 = *(undefined4 *)(param_2 + 0xa8);
  1799.           DAT_800b9844 = *(undefined4 *)(param_2 + 0xac);
  1800.           DAT_800b9848 = *(undefined4 *)(param_2 + 0xb0);
  1801.         }
  1802.         iVar4 = FUN_80024b78(param_1,0x5d);
  1803.         if (iVar4 == 0) {
  1804.           _DAT_ffff8b30 = 0;
  1805.         }
  1806.         else {
  1807.           _DAT_ffff8b30 = _DAT_ffff8b30 + 1;
  1808.         }
  1809.         iVar4 = FUN_800240d4(param_1,1);
  1810.         if ((iVar4 == 0) && (10 < *(int *)(param_2 + 0x44))) {
  1811.           FUN_800629cc(param_1);
  1812.           uVar13 = DAT_800b9848;
  1813.           uVar11 = DAT_800b9844;
  1814.           uVar5 = DAT_800b9840;
  1815.           *(undefined4 *)(param_2 + 0xa4) = DAT_800b983c;
  1816.           *(undefined4 *)(param_2 + 0xa8) = uVar5;
  1817.           *(undefined4 *)(param_2 + 0xac) = uVar11;
  1818.           *(undefined4 *)(param_2 + 0xb0) = uVar13;
  1819.           local_1a0 = *(undefined4 *)(param_2 + 0xa4);
  1820.           local_19c = *(undefined4 *)(param_2 + 0xa8);
  1821.           local_194 = *(undefined4 *)(param_2 + 0xb0);
  1822.           local_198 = 0;
  1823.           iVar3 = FUN_8004d948(&local_1a0);
  1824.           if (iVar3 < 0x1e000) {
  1825.             FUN_8004db84(&local_1a0);
  1826.             FUN_8004d8e0(&local_1a0,&local_1a0,0x1e000);
  1827.           }
  1828.           local_198 = 0xa000;
  1829.           *(undefined4 *)(param_2 + 0xa4) = local_1a0;
  1830.           *(undefined4 *)(param_2 + 0xa8) = local_19c;
  1831.           *(undefined4 *)(param_2 + 0xac) = 0xa000;
  1832.           *(undefined4 *)(param_2 + 0xb0) = local_194;
  1833.           FUN_8002535c(param_1,&local_1a0);
  1834.           iVar3 = FUN_8003758c(param_1,0x6b);
  1835.           if ((iVar3 != 0) || (iVar3 = FUN_8003758c(param_1,0x6c), iVar3 != 0)) {
  1836.             *(undefined4 *)(param_2 + 0xbc) = 0;
  1837.             change_action(param_1,0x59,"YLT_SautMontee2",0xffff81dc,0x1687);
  1838.           }
  1839.           FUN_800647b4(param_1,param_2);
  1840.           FUN_80026448(param_1,0);
  1841.           FUN_80026430(param_1,1);
  1842.           *(undefined4 *)(param_2 + 0x44) = 0;
  1843.           *(undefined4 *)(param_2 + 0xac) = 0;
  1844.           if (*(int *)(param_2 + 0xbc) == 0) {
  1845.             *(undefined4 *)(param_2 + 0x40) = 1;
  1846.           }
  1847.           else {
  1848.             *(undefined4 *)(param_2 + 0x40) = 0;
  1849.           }
  1850.           _DAT_ffff8ac4 = 0;
  1851.           *(undefined4 *)(param_2 + 0x58) = 0;
  1852.           FUN_8003db2c(1,0);
  1853.           return 1;
  1854.         }
  1855.         DAT_800b983c = *(undefined4 *)(param_2 + 0xa4);
  1856.         DAT_800b9840 = *(undefined4 *)(param_2 + 0xa8);
  1857.         DAT_800b9844 = *(undefined4 *)(param_2 + 0xac);
  1858.         DAT_800b9848 = *(undefined4 *)(param_2 + 0xb0);
  1859.         _DAT_ffff8b30 = 0;
  1860.         uVar5 = FUN_80022d98(param_1,1);
  1861.         iVar4 = FUN_80024460(uVar5,1);
  1862.         if ((iVar4 == 0) && (iVar4 = FUN_800240d4(param_1,1), iVar4 != 0)) {
  1863.           *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  1864.           if (0 < *(short *)(param_2 + 0xc4)) {
  1865.             *(undefined2 *)(param_2 + 0xc4) = 0;
  1866.             FUN_800629cc(param_1);
  1867.             FUN_80063834();
  1868.             *(undefined4 *)(param_2 + 0xbc) = 0;
  1869.             change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x16ac);
  1870.             FUN_80024da4(param_1,0x5d);
  1871.             FUN_8003db2c(1,0);
  1872.             return 1;
  1873.           }
  1874.         }
  1875.         else {
  1876.           *(undefined2 *)(param_2 + 0xc4) = 0;
  1877.         }
  1878.         if ((*(int *)(param_2 + 0xbc) == 0) &&
  1879.            (*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18) +
  1880.                      0x99) == '\0')) {
  1881.           *(undefined2 *)(param_2 + 0xcc) = 1;
  1882.           if (*(int *)(param_2 + 0x30) < 0) {
  1883.             iVar4 = FUN_8003758c(param_1,0x81);
  1884.             if (iVar4 == 0) {
  1885.               change_action(param_1,0x80,"YLT_GlisseGauche",0xffff81dc,0x16c6);
  1886.             }
  1887.             else {
  1888.               change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x16c4);
  1889.             }
  1890.           }
  1891.           else {
  1892.             if (*(int *)(param_2 + 0x30) < 1) {
  1893.               change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x16d0);
  1894.             }
  1895.             else {
  1896.               iVar4 = FUN_8003758c(param_1,0x80);
  1897.               if (iVar4 == 0) {
  1898.                 change_action(param_1,0x81,"YLT_GlisseDroite",0xffff81dc,0x16cd);
  1899.               }
  1900.               else {
  1901.                 change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x16cb);
  1902.               }
  1903.             }
  1904.           }
  1905.         }
  1906.         iVar4 = FUN_8002326c(0xb);
  1907.         if ((iVar4 != 0) && ((*(int *)(param_2 + 0xbc) == 0 || (*(int *)(param_2 + 0xbc) == 3)))) {
  1908.           if (*(short *)(param_2 + 0xcc) == 1) {
  1909.             change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x16db);
  1910.           }
  1911.           else {
  1912.             if (*(short *)(param_2 + 0xcc) == 2) {
  1913.               change_action(param_1,0x6a,"YLT_PoingTir2",0xffff81dc,0x16e1);
  1914.             }
  1915.           }
  1916.           *(undefined4 *)(param_2 + 0xbc) = 2;
  1917.         }
  1918.         iVar4 = FUN_800375cc(param_1);
  1919.         if (iVar4 != 0) {
  1920.           iVar4 = FUN_8003758c(param_1,0x69);
  1921.           if (iVar4 == 0) {
  1922.             iVar4 = FUN_8003758c(param_1,0x6a);
  1923.             if (iVar4 == 0) {
  1924.               iVar4 = FUN_8003758c(param_1,0x68);
  1925.               if ((iVar4 == 0) && (iVar4 = FUN_8003758c(param_1,0x23), iVar4 == 0)) {
  1926.                 iVar4 = FUN_8003758c(param_1,0x66);
  1927.                 if ((iVar4 == 0) && (iVar4 = FUN_8003758c(param_1,0x24), iVar4 == 0)) {
  1928.                   iVar4 = FUN_8003758c(param_1,0x21);
  1929.                   if (iVar4 == 0) {
  1930.                     iVar4 = FUN_8003758c(param_1,0x22);
  1931.                     if (iVar4 == 0) {
  1932.                       change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x170f);
  1933.                       *(undefined4 *)(param_2 + 0xbc) = 0;
  1934.                       *(undefined2 *)(param_2 + 0xcc) = 1;
  1935.                     }
  1936.                     else {
  1937.                       change_action(param_1,0x66,"YLT_PoingDelai2",0xffff81dc,0x1709);
  1938.                       *(undefined4 *)(param_2 + 0xbc) = 0;
  1939.                       *(undefined2 *)(param_2 + 0xcc) = 1;
  1940.                     }
  1941.                   }
  1942.                   else {
  1943.                     change_action(param_1,0x68,"YLT_PoingDelai1",0xffff81dc,0x1704);
  1944.                     *(undefined4 *)(param_2 + 0xbc) = 0;
  1945.                     *(undefined2 *)(param_2 + 0xcc) = 2;
  1946.                   }
  1947.                 }
  1948.                 else {
  1949.                   change_action(param_1,0x6c,"YLT_PoingFin2",0xffff81dc,0x16ff);
  1950.                   *(undefined4 *)(param_2 + 0xbc) = 3;
  1951.                   *(undefined2 *)(param_2 + 0xcc) = 1;
  1952.                 }
  1953.               }
  1954.               else {
  1955.                 change_action(param_1,0x6b,"YLT_PoingFin1",0xffff81dc,0x16f9);
  1956.                 *(undefined4 *)(param_2 + 0xbc) = 3;
  1957.                 *(undefined2 *)(param_2 + 0xcc) = 1;
  1958.               }
  1959.             }
  1960.             else {
  1961.               change_action(param_1,0x66,"YLT_PoingDelai2",0xffff81dc,0x16f3);
  1962.               *(undefined4 *)(param_2 + 0xbc) = 3;
  1963.               *(undefined2 *)(param_2 + 0xcc) = 1;
  1964.             }
  1965.           }
  1966.           else {
  1967.             change_action(param_1,0x68,"YLT_PoingDelai1",0xffff81dc,0x16ed);
  1968.             *(undefined4 *)(param_2 + 0xbc) = 3;
  1969.             *(undefined2 *)(param_2 + 0xcc) = 2;
  1970.           }
  1971.         }
  1972.         iVar4 = FUN_8003758c(param_1,0x6b);
  1973.         if ((iVar4 != 0) || (iVar4 = FUN_8003758c(param_1,0x6c), iVar4 != 0)) {
  1974.           _DAT_ffff8ac8 = _DAT_ffff8ac8 + 1;
  1975.         }
  1976.         if (6 < _DAT_ffff8ac8) {
  1977.           change_action(param_1,0x5f,"YLT_Glisse",0xffff81dc,0x171b);
  1978.           *(undefined4 *)(param_2 + 0xbc) = 0;
  1979.           *(undefined2 *)(param_2 + 0xcc) = 1;
  1980.           _DAT_ffff8ac8 = 0;
  1981.         }
  1982.         iVar4 = FUN_8002326c(2);
  1983.         if ((iVar4 != 0) && (iVar4 = FUN_800240d4(param_1,1), iVar4 != 0)) {
  1984.           FUN_800629cc(param_1);
  1985.           uVar13 = DAT_800b9848;
  1986.           uVar11 = DAT_800b9844;
  1987.           uVar5 = DAT_800b9840;
  1988.           _DAT_ffff8ac8 = 0;
  1989.           *(undefined4 *)(param_2 + 0xa4) = DAT_800b983c;
  1990.           *(undefined4 *)(param_2 + 0xa8) = uVar5;
  1991.           *(undefined4 *)(param_2 + 0xac) = uVar11;
  1992.           *(undefined4 *)(param_2 + 0xb0) = uVar13;
  1993.           local_190 = 0;
  1994.           local_18c = 0;
  1995.           local_188 = 0x12000;
  1996.           if (iVar3 < 0x14001) {
  1997.             FUN_8004db84(&local_1e0,iVar6);
  1998.             FUN_8004d8e0(&local_1e0,&local_1e0,0x14000);
  1999.             FUN_8004dca8(&local_190,&local_1e0);
  2000.           }
  2001.           else {
  2002.             FUN_8004dca8(&local_190,&local_190,iVar6);
  2003.             local_1e0 = *(int *)(param_2 + 0xa4);
  2004.             local_1dc = *(int *)(param_2 + 0xa8);
  2005.             local_1d4 = *(undefined4 *)(param_2 + 0xb0);
  2006.             local_1d8 = 0;
  2007.             FUN_8004d8e0(&local_1e0,&local_1e0,0x2000);
  2008.             FUN_8004dca8(&local_190,&local_1e0);
  2009.           }
  2010.           if (local_188 < 0xa000) {
  2011.             local_188 = 0xa000;
  2012.           }
  2013.           else {
  2014.             if (local_188 < 0x14000) {
  2015.               local_188 = 0x14000;
  2016.             }
  2017.           }
  2018.           FUN_8002535c(param_1,&local_190);
  2019.           iVar3 = FUN_8003758c(param_1,0x6b);
  2020.           if ((iVar3 != 0) || (iVar3 = FUN_8003758c(param_1,0x6c), iVar3 != 0)) {
  2021.             *(undefined4 *)(param_2 + 0xbc) = 0;
  2022.             change_action(param_1,0x59,"YLT_SautMontee2",0xffff81dc,0x1747);
  2023.           }
  2024.           FUN_800647b4(param_1,param_2);
  2025.           FUN_80026448(param_1,0);
  2026.           FUN_80026430(param_1,1);
  2027.           *(undefined4 *)(param_2 + 0x44) = 0;
  2028.           *(undefined4 *)(param_2 + 0xac) = 0;
  2029.           if (*(int *)(param_2 + 0xbc) == 0) {
  2030.             *(undefined4 *)(param_2 + 0x40) = 1;
  2031.           }
  2032.           else {
  2033.             *(undefined4 *)(param_2 + 0x40) = 0;
  2034.           }
  2035.           _DAT_ffff8ac4 = 0;
  2036.           *(undefined4 *)(param_2 + 0x58) = 0;
  2037.           FUN_8003db2c(1,0);
  2038.           return 1;
  2039.         }
  2040.         FUN_80066044(param_1,&local_1e0);
  2041.         FUN_8004db84(&local_1e0);
  2042.         FUN_8004d8e0(&local_1e0,&local_1e0,0x1c2000);
  2043.         if (iVar3 != 0) {
  2044.           iVar4 = iVar3 >> 6;
  2045.           local_1e0 = (local_1e0 << 6) / iVar4;
  2046.           local_1dc = (local_1dc << 6) / iVar4;
  2047.           local_1d8 = (local_1d8 << 6) / iVar4;
  2048.         }
  2049.         iVar4 = FUN_80024afc(param_2 + 0x74);
  2050.         if (iVar4 == 0) {
  2051.           local_1c4 = *(int *)(param_2 + 0xb0);
  2052.           if (*(int *)(param_2 + 0x30) < 0) {
  2053.             local_1d0 = -*(int *)(param_2 + 0xa8);
  2054.             local_1cc = *(int *)(param_2 + 0xa4);
  2055.           }
  2056.           else {
  2057.             local_1d0 = *(int *)(param_2 + 0xa8);
  2058.             local_1cc = -*(int *)(param_2 + 0xa4);
  2059.           }
  2060.           local_1c8 = 0;
  2061.           FUN_8004db84(&local_1d0);
  2062.           DAT_800b984c = local_1d0;
  2063.           DAT_800b9850 = local_1cc;
  2064.           DAT_800b9854 = local_1c8;
  2065.           DAT_800b9858 = local_1c4;
  2066.           iVar4 = FUN_800231c4();
  2067.           if (iVar4 < 0) {
  2068.             iVar4 = FUN_800231c4();
  2069.             iVar4 = -iVar4;
  2070.           }
  2071.           else {
  2072.             iVar4 = FUN_800231c4();
  2073.           }
  2074.           if (0x32 < iVar4) {
  2075.             iVar4 = FUN_800231c4();
  2076.             if (iVar4 < 1) {
  2077.               iVar4 = FUN_800231c4();
  2078.               uVar16 = FUN_8002047c(iVar4 + 0x32);
  2079.               uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0,0x4052c000);
  2080.               uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  2081.               _DAT_ffff8abc = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  2082.             }
  2083.             else {
  2084.               iVar4 = FUN_800231c4();
  2085.               uVar16 = FUN_8002047c(iVar4 + -0x32);
  2086.               uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0,0x4052c000);
  2087.               uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  2088.               _DAT_ffff8abc = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  2089.             }
  2090.           }
  2091.           iVar4 = FUN_80023a8c(5);
  2092.           if ((iVar4 == 0) && (iVar4 = FUN_80023a8c(6), iVar4 == 0)) {
  2093.             _DAT_ffff8abc = _DAT_ffff8abc - _DAT_ffff8abc / 10;
  2094.           }
  2095.           else {
  2096.             _DAT_ffff8abc = _DAT_ffff8abc + 0x199;
  2097.             if (0x1000 < _DAT_ffff8abc) {
  2098.               _DAT_ffff8abc = 0x1000;
  2099.             }
  2100.           }
  2101.           if (_DAT_ffff8abc < 0) {
  2102.             _DAT_ffff8abc = -_DAT_ffff8abc;
  2103.           }
  2104.           FUN_8004d8e0(&local_1d0,&local_1d0,_DAT_ffff8abc);
  2105.           FUN_8004d8e0(&local_1d0,&local_1d0,iVar3);
  2106.           FUN_8004d8e0(&local_1d0,&local_1d0,0x3000);
  2107.           FUN_8004dca8(&local_1e0,&local_1e0,&local_1d0);
  2108.         }
  2109.         else {
  2110.           DAT_800b9854 = 0;
  2111.           DAT_800b9850 = 0;
  2112.           DAT_800b984c = 0;
  2113.         }
  2114.         iVar4 = FUN_8004d948(&local_1d0);
  2115.         if (((0x28000 < iVar4) && (*(int *)(param_2 + 0x44) % 5 == 0)) && (0xa000 < iVar3)) {
  2116.           FUN_800627cc(param_1,param_2);
  2117.         }
  2118.         FUN_80025350(param_1,&local_1e0);
  2119.         return 1;
  2120.       }
  2121.       if (iVar3 == 5) {
  2122.         *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  2123.         FUN_80044710(2);
  2124.         FUN_800266b8(param_1,0);
  2125.         FUN_800266c4(param_1,0);
  2126.         FUN_800266d0(param_1,0);
  2127.         FUN_80062378(param_1,param_2);
  2128.         iVar3 = FUN_80024afc(param_2 + 300);
  2129.         if ((iVar3 == 0) && (iVar3 = FUN_80024afc(param_2 + 0x74), iVar3 != 0)) {
  2130.           FUN_80025350(param_1,param_2 + 300);
  2131.         }
  2132.         iVar3 = FUN_80024afc(param_2 + 0x74);
  2133.         if (iVar3 == 0) {
  2134.           iVar3 = FUN_80023a8c(0xc);
  2135.           if (iVar3 == 0) {
  2136.             FUN_80063038(param_2,auStack576);
  2137.             FUN_80022930(param_1,auStack560);
  2138.             iVar3 = FUN_8004d870(auStack576,auStack560);
  2139.             if (iVar3 < -0x7ff) {
  2140.               uVar5 = FUN_800223d4(auStack560,0xb33,auStack576);
  2141.               thunk_FUN_80051ce0(param_1,uVar5);
  2142.               iVar3 = *(int *)(param_2 + 0x50);
  2143.             }
  2144.             else {
  2145.               uVar5 = FUN_800223d4(auStack560,0xbae,auStack576);
  2146.               thunk_FUN_80051ce0(param_1,uVar5);
  2147.               iVar3 = *(int *)(param_2 + 0x50);
  2148.             }
  2149.             if (iVar3 < 1) {
  2150.               iVar3 = -iVar3;
  2151.             }
  2152.             if (iVar3 < 0x708) {
  2153.               if ((_DAT_ffff8afc < 0x33) && (_DAT_ffff8b00 < 0x33)) {
  2154.                 FUN_80026e48(param_1,0xffffb000);
  2155.                 _DAT_ffff8b28 = -0x5000;
  2156.               }
  2157.               else {
  2158.                 _DAT_ffff8b28 = ((_DAT_ffff8b0c * 5) / 0x3d09) * 0x1000;
  2159.                 if (_DAT_ffff8b28 < -0x5000) {
  2160.                   _DAT_ffff8b28 = -0x5000;
  2161.                 }
  2162.                 _DAT_ffff8b28 = -_DAT_ffff8b28;
  2163.                 FUN_80026e48(param_1,_DAT_ffff8b28);
  2164.               }
  2165.             }
  2166.           }
  2167.           else {
  2168.             FUN_80063038(param_2,auStack544);
  2169.             FUN_8004d8e0(auStack544,auStack544,0x5000);
  2170.             local_218 = 0;
  2171.             FUN_80025350(param_1,auStack544);
  2172.           }
  2173.         }
  2174.         else {
  2175.           if (_DAT_ffff8b28 < 0) {
  2176.             _DAT_ffff8b28 = _DAT_ffff8b28 + 0x1000;
  2177.             FUN_80026e48(param_1,_DAT_ffff8b28);
  2178.           }
  2179.         }
  2180.         FUN_800655e0(param_1,param_2);
  2181.         FUN_80067348(param_1,param_2);
  2182.         iVar3 = FUN_800240d4(param_1,3);
  2183.         if (iVar3 == 0) {
  2184.           iVar3 = FUN_80065098(param_1,param_2);
  2185.           if (iVar3 != 0) {
  2186.             FUN_8003dba8(0x46);
  2187.             return 1;
  2188.           }
  2189.           iVar3 = FUN_80066c24(param_1,param_2);
  2190.           if (iVar3 == 1) {
  2191.             FUN_8003dba8(0x46);
  2192.             return 1;
  2193.           }
  2194.           iVar3 = FUN_80064d40(param_1,param_2);
  2195.           if (iVar3 != 0) {
  2196.             FUN_8003dba8(0x46);
  2197.             return 1;
  2198.           }
  2199.           iVar3 = FUN_80064b1c(param_1,param_2);
  2200.           if (iVar3 != 0) {
  2201.             FUN_8003dba8(0x46);
  2202.             return 1;
  2203.           }
  2204.           iVar3 = FUN_80063e90(param_1,param_2);
  2205.           if (iVar3 != 0) {
  2206.             FUN_8003dba8(0x46);
  2207.             return 1;
  2208.           }
  2209.         }
  2210.         iVar3 = FUN_8002326c(2);
  2211.         if (iVar3 != 0) {
  2212.           _DAT_ffff8ab8 = 1;
  2213.         }
  2214.         if (*(int *)(param_2 + 0x44) < 4) {
  2215.           _DAT_ffff8ab8 = 0;
  2216.         }
  2217.         if ((((_DAT_ffff8ab8 != 0) && (3 < *(int *)(param_2 + 0x44))) &&
  2218.             (*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18) +
  2219.                       0x99) == '\0')) && (*(int *)(param_2 + 0xdc) != 1)) {
  2220.           _DAT_ffff8b64 = 1;
  2221.           _DAT_ffff8ab8 = 0;
  2222.           FUN_800647b4(param_1,param_2);
  2223.           *(undefined4 *)(param_2 + 0x40) = 0;
  2224.           *(undefined4 *)(param_2 + 0x58) = 1;
  2225.           FUN_8003dba8(0x46);
  2226.           return 1;
  2227.         }
  2228.         iVar3 = FUN_80023a8c(2);
  2229.         if ((iVar3 != 0) && (*(int *)(param_2 + 0xdc) == 1)) {
  2230.           FUN_8003dba8(0x46);
  2231.           FUN_80063fbc(param_1,param_2);
  2232.           *(undefined4 *)(param_2 + 0x58) = 1;
  2233.           return 1;
  2234.         }
  2235.         iVar3 = FUN_800240d4(param_1,2);
  2236.         if (iVar3 != 0) {
  2237.           FUN_800266ac(param_1,0xccc);
  2238.           iVar3 = FUN_80024afc(param_2 + 0x74);
  2239.           if (iVar3 == 0) {
  2240.             FUN_80063038(param_2,auStack528);
  2241.             puVar8 = (undefined4 *)FUN_80022f28(param_1,2);
  2242.             local_200 = *puVar8;
  2243.             local_1fc = puVar8[1];
  2244.             local_1f8 = puVar8[2];
  2245.             local_1f4 = puVar8[3];
  2246.             iVar3 = FUN_8004d870(auStack528,&local_200);
  2247.             if (iVar3 < -0x7ff) {
  2248.               FUN_800266ac(param_1,0xccc);
  2249.               FUN_800256e0(param_1,0xffffb000);
  2250.               FUN_800256d4(param_1,0);
  2251.             }
  2252.           }
  2253.         }
  2254.         FUN_800673f4(param_1,param_2,5);
  2255.         if (_DAT_ffff8b64 == 0) {
  2256.           return 1;
  2257.         }
  2258.         FUN_800256e0(param_1,0xffffc19a);
  2259.         return 1;
  2260.       }
  2261.       if (iVar3 == 4) goto LAB_800690d4;
  2262.       if (iVar3 == 3) {
  2263. LAB_800688a0:
  2264.         if ((_DAT_ffff8b0c < 0x3e04) && (iVar3 = FUN_80023a8c(1), iVar3 == 0)) {
  2265.           if ((0x1fa4 < _DAT_ffff8b0c) && (_DAT_ffff8b0c < 0x3e04)) {
  2266.             iVar3 = FUN_8003758c(param_1,2);
  2267.             if (iVar3 == 0) {
  2268.               FUN_80039564(param_1,0x1e);
  2269.               unaff_s5 = -0x6aac;
  2270.             }
  2271.             else {
  2272.               FUN_80039564(param_1,0x14);
  2273.               unaff_s5 = -0x6aac;
  2274.             }
  2275.           }
  2276.           iVar3 = *(int *)(param_1 + 4);
  2277.         }
  2278.         else {
  2279.           unaff_s5 = -0xa000;
  2280.           FUN_80039564(param_1,0x1e);
  2281.           iVar3 = *(int *)(param_1 + 4);
  2282.         }
  2283.         if (*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) + iVar3 * 0x18) + 0x99) != '\0') {
  2284.           FUN_80039564(param_1,0x1e);
  2285.         }
  2286.         _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  2287.         FUN_80062378(param_1,param_2);
  2288.         *(undefined4 *)(param_2 + 0x38) = 0xb;
  2289.         FUN_800655e0(param_1,param_2);
  2290.         iVar3 = FUN_8002326c(2);
  2291.         if (iVar3 != 0) {
  2292.           *(undefined4 *)(param_2 + 0x40) = 1;
  2293.           *(undefined4 *)(param_2 + 0x68) = 1;
  2294.           *(undefined4 *)(param_2 + 0xac) = 0;
  2295.           *(undefined4 *)(param_2 + 0xa8) = 0;
  2296.           *(undefined4 *)(param_2 + 0xa4) = 0;
  2297.           _DAT_ffff8b20 = 0xffff6000;
  2298.           FUN_800648d4(param_1,param_2);
  2299.           if (*(int *)(param_2 + 0xbc) != 0) {
  2300.             FUN_80026448(param_1,0);
  2301.             FUN_80026430(param_1,1);
  2302.             *(undefined4 *)(param_2 + 0x40) = 3;
  2303.           }
  2304.           uVar5 = FUN_80022a08(param_1);
  2305.           iVar3 = FUN_80024460(uVar5,0x10);
  2306.           if (iVar3 == 0) {
  2307.             return 1;
  2308.           }
  2309.           FUN_800628cc(param_1,param_2);
  2310.           return 1;
  2311.         }
  2312.         iVar3 = FUN_80024afc(param_2 + 0x74);
  2313.         if ((iVar3 == 0) && ((*(short *)(param_2 + 0xc4) == 0 || (_DAT_ffff8b18 == 3)))) {
  2314.           *(undefined2 *)(param_2 + 0xc4) = 0;
  2315.           _DAT_ffff8b5c = 0;
  2316.           *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  2317.           if (*(int *)(param_2 + 0x44) < 10) {
  2318.             _DAT_ffff8b18 = 0xd - *(int *)(param_2 + 0x44);
  2319.           }
  2320.           else {
  2321.             _DAT_ffff8b18 = 3;
  2322.           }
  2323.           iVar3 = FUN_80023a8c(0xc);
  2324.           if (iVar3 == 0) {
  2325.             iVar3 = FUN_80065dec(param_1,param_2);
  2326.             if (iVar3 == 0) {
  2327.               if (unaff_s5 < _DAT_ffff8b20) {
  2328.                 _DAT_ffff8b20 = _DAT_ffff8b20 + -0x1000;
  2329.               }
  2330.               if (_DAT_ffff8b20 < unaff_s5) {
  2331.                 _DAT_ffff8b20 = unaff_s5;
  2332.               }
  2333.               FUN_80026e48(param_1,_DAT_ffff8b20);
  2334.               iVar3 = *(int *)(param_1 + 4);
  2335.             }
  2336.             else {
  2337.               _DAT_ffff8b20 = -0x5000;
  2338.               FUN_80026e48(param_1);
  2339.               iVar3 = *(int *)(param_1 + 4);
  2340.             }
  2341.             goto code_r0x80068c10;
  2342.           }
  2343.         }
  2344.         else {
  2345.           *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  2346.           _DAT_ffff8b5c = _DAT_ffff8b5c + 1;
  2347.           if ((_DAT_ffff8b18 <= _DAT_ffff8b5c) || (_DAT_ffff8224 != 0)) {
  2348.             _DAT_ffff8b20 = 0;
  2349.             FUN_80064058(param_1,param_2);
  2350.             iVar3 = FUN_80023a8c(0xb);
  2351.             if (iVar3 != 0) {
  2352.               *(undefined4 *)(param_2 + 0x6c) = 0;
  2353.             }
  2354.             *(undefined4 *)(param_2 + 0x44) = 5;
  2355.             *(undefined2 *)(param_2 + 0xc4) = 0;
  2356. LAB_800690d4:
  2357.             do {
  2358.               iVar3 = FUN_80064b1c(param_1,param_2);
  2359.               if (iVar3 != 0) {
  2360.                 return 1;
  2361.               }
  2362.               iVar3 = FUN_80024a48(param_1,0x1f);
  2363.               if (((((iVar3 != 0) &&
  2364.                     (*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) +
  2365.                                        *(int *)(param_1 + 4) * 0x18) + 0x99) != '\0')) &&
  2366.                    (iVar3 = FUN_80023a8c(2), iVar3 == 0)) &&
  2367.                   ((iVar3 = FUN_80023a8c(0xc), iVar3 == 0 && (iVar3 = FUN_80023a8c(0xb), iVar3 == 0)
  2368.                    ))) && (iVar3 = FUN_8002326c(0xb), iVar3 == 0)) {
  2369.                 FUN_800256d4(param_1,0);
  2370.                 return 1;
  2371.               }
  2372.               FUN_800258d4(param_1,0x1f,0);
  2373.               *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  2374.               *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  2375.               FUN_80062378(param_1,param_2);
  2376.               iVar4 = param_2 + 0x74;
  2377.               *(undefined4 *)(param_2 + 0x38) = 0;
  2378.               iVar3 = FUN_80024afc(iVar4);
  2379.               if (iVar3 == 0) {
  2380.                 iVar3 = FUN_80023a8c(1);
  2381.                 if (iVar3 != 0) {
  2382.                   *(undefined4 *)(param_2 + 0x3c) = 3;
  2383.                 }
  2384.                 *(int *)(param_2 + 0x3c) = *(int *)(param_2 + 0x3c) + 1;
  2385.               }
  2386.               else {
  2387.                 FUN_800256d4(param_1,0);
  2388.                 *(undefined4 *)(param_2 + 0x3c) = 0;
  2389.               }
  2390.               iVar3 = FUN_8002326c(2);
  2391.               if (((iVar3 != 0) && (*(int *)(param_2 + 0x24c) == 1)) &&
  2392.                  ((_DAT_ffff8910 & 0x10) == 0)) {
  2393.                 if (*(int *)(param_2 + 0xb8) == 1) {
  2394.                   change_action(param_1,0x21,"JAC_SautTir1",0xffff81dc,0x11a0);
  2395.                   *(undefined4 *)(param_2 + 0xbc) = 2;
  2396.                   *(undefined4 *)(param_2 + 0x13c) = 1;
  2397.                   if (*(int *)(param_2 + 0xb8) == 1) {
  2398.                     if (0x32 < *(short *)(param_2 + 0x108)) {
  2399.                       _DAT_ffff8220 = 2;
  2400.                     }
  2401.                     FUN_80065d10(param_1,param_2);
  2402.                     *(undefined2 *)(param_2 + 0x108) = 0;
  2403.                     *(undefined4 *)(param_2 + 0xb8) = 0;
  2404.                   }
  2405.                 }
  2406.                 FUN_800258d4(param_1,0x1e,0);
  2407.                 *(undefined4 *)(param_2 + 0x40) = 0;
  2408.                 _DAT_ffff8228 = 0xffffb000;
  2409.                 *(undefined4 *)(param_2 + 0x68) = 1;
  2410.                 *(undefined4 *)(param_2 + 0x44) = 0;
  2411.                 FUN_800351a8();
  2412.                 FUN_800648d4(param_1,param_2);
  2413.                 *(undefined4 *)(param_2 + 0x13c) = 1;
  2414.                 uVar5 = FUN_80022a08(param_1);
  2415.                 iVar3 = FUN_80024460(uVar5,0x10);
  2416.                 if (iVar3 != 0) {
  2417.                   FUN_800628cc(param_1,param_2);
  2418.                 }
  2419.                 _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  2420.                 return 1;
  2421.               }
  2422.               if ((*(int *)(param_2 + 0xb8) == 1) || (*(int *)(param_2 + 0xc0) != 0)) {
  2423.                 iVar3 = FUN_80023a8c(0xc);
  2424.                 if (iVar3 == 0) {
  2425.                   iVar3 = *(int *)(param_2 + 0x50) * 0x40;
  2426.                   if (iVar3 < 0) {
  2427.                     iVar3 = iVar3 + 0xff;
  2428.                   }
  2429.                   FUN_80025704(param_1,iVar3 >> 8);
  2430.                   goto LAB_80069cfc;
  2431.                 }
  2432.                 if (((((_DAT_ffff8910 & 0x10) != 0) ||
  2433.                      (*(int *)(param_2 + 0x4c) <= *(int *)(param_2 + 0x20))) ||
  2434.                     (iVar3 = FUN_80024a48(param_1,0x1e), iVar3 != 0)) ||
  2435.                    ((iVar3 = FUN_80023a8c(0xb), iVar3 == 0 ||
  2436.                     (iVar3 = FUN_8003758c(param_1,8), iVar3 == 0)))) goto LAB_80069cfc;
  2437.                 FUN_80064650(param_1,param_2);
  2438.                 _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  2439.               }
  2440.               else {
  2441.                 if (*(int *)(param_2 + 0x20) < *(int *)(param_2 + 0x4c)) {
  2442.                   iVar3 = FUN_80023a8c(0xc);
  2443.                   if (((iVar3 == 0) || (iVar3 = FUN_80024a48(param_1,0x1e), iVar3 != 0)) ||
  2444.                      ((_DAT_ffff8910 & 0x10) != 0)) {
  2445.                     if ((_DAT_ffff8910 & 0x10) == 0) {
  2446.                       iVar3 = FUN_80024afc(iVar4);
  2447.                       if (iVar3 == 0) {
  2448.                         iVar3 = FUN_80024a48(param_1,0x1e);
  2449.                         iVar10 = 0x708;
  2450.                         if (iVar3 != 0) {
  2451.                           iVar10 = 10;
  2452.                         }
  2453.                         iVar3 = *(int *)(param_2 + 0x50);
  2454.                         if (iVar3 < 1) {
  2455.                           iVar3 = -iVar3;
  2456.                         }
  2457.                         if (iVar10 < iVar3) {
  2458.                           *(undefined2 *)(param_2 + 0xc4) = 0;
  2459.                           iVar3 = FUN_80024a48(param_1,0x1e);
  2460.                           if ((iVar3 == 0) && (*(int *)(param_2 + 0xbc) == 0)) {
  2461.                             change_action(param_1,1,"YLT_Walk",0xffff81dc,0x11f7);
  2462.                             FUN_800256d4(param_1,0);
  2463.                           }
  2464.                           iVar3 = FUN_80023a8c(0xc);
  2465.                           if (iVar3 == 0) {
  2466.                             iVar3 = FUN_800231c4();
  2467.                             if (iVar3 < 0) {
  2468.                               iVar3 = FUN_800231c4();
  2469.                               iVar3 = -iVar3;
  2470.                             }
  2471.                             else {
  2472.                               iVar3 = FUN_800231c4();
  2473.                             }
  2474.                             if (iVar3 < 0x33) {
  2475.                               iVar3 = FUN_80023234();
  2476.                               if (iVar3 < 0) {
  2477.                                 iVar3 = FUN_80023234();
  2478.                                 iVar3 = -iVar3;
  2479.                               }
  2480.                               else {
  2481.                                 iVar3 = FUN_80023234();
  2482.                               }
  2483.                               if (iVar3 < 0x33) {
  2484.                                 FUN_80063038(param_2,auStack624);
  2485.                                 FUN_80022930(param_1,auStack608);
  2486.                                 iVar3 = FUN_80024a48(param_1,0x1e);
  2487.                                 if (((iVar3 == 0) && (iVar3 = FUN_80023a8c(0), iVar3 == 0)) &&
  2488.                                    (iVar3 = FUN_80062b1c(), iVar3 == 0)) {
  2489.                                   iVar10 = *(int *)(param_2 + 0x50);
  2490.                                   if (iVar10 < 1) {
  2491.                                     _DAT_ffff8b10 = _DAT_ffff8b10 + 1;
  2492.                                     uVar16 = FUN_8002047c();
  2493.                                     uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),
  2494.                                                           (int)uVar16,1,0x40280000);
  2495.                                     uVar16 = FUN_800211f0(0,0x40b00000,
  2496.                                                           (int)((ulonglong)uVar16 >> 0x20),
  2497.                                                           (int)uVar16);
  2498.                                     iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),
  2499.                                                             (int)uVar16);
  2500.                                     iVar3 = -iVar3;
  2501.                                   }
  2502.                                   else {
  2503.                                     _DAT_ffff8b10 = _DAT_ffff8b10 + 1;
  2504.                                     uVar16 = FUN_8002047c();
  2505.                                     uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),
  2506.                                                           (int)uVar16,1,0x40280000);
  2507.                                     uVar16 = FUN_800211f0(0,0x40b00000,
  2508.                                                           (int)((ulonglong)uVar16 >> 0x20),
  2509.                                                           (int)uVar16);
  2510.                                     iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),
  2511.                                                             (int)uVar16);
  2512.                                   }
  2513.                                   iVar6 = -iVar3;
  2514.                                   if (0 < iVar3) {
  2515.                                     iVar6 = iVar3;
  2516.                                   }
  2517.                                   if (iVar10 < 1) {
  2518.                                     iVar10 = -*(int *)(param_2 + 0x50);
  2519.                                   }
  2520.                                   else {
  2521.                                     iVar10 = *(int *)(param_2 + 0x50);
  2522.                                   }
  2523.                                   if (iVar10 < iVar6) {
  2524.                                     iVar3 = *(int *)(param_2 + 0x50);
  2525.                                   }
  2526.                                 }
  2527.                                 else {
  2528.                                   if (*(int *)(param_2 + 0x50) < 1) {
  2529.                                     _DAT_ffff8b10 = _DAT_ffff8b10 + 1;
  2530.                                     uVar16 = FUN_8002047c();
  2531.                                     uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),
  2532.                                                           (int)uVar16,0,0x40540000);
  2533.                                     uVar16 = FUN_800211f0(0,0x40b00000,
  2534.                                                           (int)((ulonglong)uVar16 >> 0x20),
  2535.                                                           (int)uVar16);
  2536.                                     iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),
  2537.                                                             (int)uVar16);
  2538.                                     iVar3 = -iVar3;
  2539.                                   }
  2540.                                   else {
  2541.                                     _DAT_ffff8b10 = _DAT_ffff8b10 + 1;
  2542.                                     uVar16 = FUN_8002047c();
  2543.                                     uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),
  2544.                                                           (int)uVar16,0,0x40540000);
  2545.                                     uVar16 = FUN_800211f0(0,0x40b00000,
  2546.                                                           (int)((ulonglong)uVar16 >> 0x20),
  2547.                                                           (int)uVar16);
  2548.                                     iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),
  2549.                                                             (int)uVar16);
  2550.                                   }
  2551.                                   iVar10 = -iVar3;
  2552.                                   if (0 < iVar3) {
  2553.                                     iVar10 = iVar3;
  2554.                                   }
  2555.                                   iVar7 = *(int *)(param_2 + 0x50) * 0x40;
  2556.                                   iVar15 = iVar7 >> 7;
  2557.                                   iVar6 = iVar15;
  2558.                                   if (iVar7 < 0) {
  2559.                                     iVar6 = iVar7 + 0x7f >> 7;
  2560.                                   }
  2561.                                   if (iVar6 < 1) {
  2562.                                     iVar6 = iVar15;
  2563.                                     if (iVar7 < 0) {
  2564.                                       iVar6 = iVar7 + 0x7f >> 7;
  2565.                                     }
  2566.                                     iVar6 = -iVar6;
  2567.                                   }
  2568.                                   else {
  2569.                                     iVar6 = iVar15;
  2570.                                     if (iVar7 < 0) {
  2571.                                       iVar6 = iVar7 + 0x7f >> 7;
  2572.                                     }
  2573.                                   }
  2574.                                   if ((iVar6 < iVar10) && (iVar3 = iVar15, iVar7 < 0)) {
  2575.                                     iVar3 = iVar7 + 0x7f >> 7;
  2576.                                   }
  2577.                                 }
  2578.                                 iVar10 = FUN_8004d870(auStack608,auStack624);
  2579.                                 if (iVar10 < -0x199) {
  2580.                                   iVar3 = FUN_80024a48(param_1,0x1e);
  2581.                                   if (iVar3 == 0) {
  2582.                                     iVar3 = *(int *)(param_2 + 0x50) * 0x40;
  2583.                                     if (iVar3 < 0) {
  2584.                                       iVar3 = iVar3 + 0x3f;
  2585.                                     }
  2586.                                     FUN_80025704(param_1,iVar3 >> 6);
  2587.                                   }
  2588.                                   else {
  2589.                                     iVar3 = *(int *)(param_2 + 0x50) * 0x40;
  2590.                                     if (iVar3 < 0) {
  2591.                                       iVar3 = iVar3 + 0x7f;
  2592.                                     }
  2593.                                     FUN_80025704(param_1,iVar3 >> 7);
  2594.                                   }
  2595.                                 }
  2596.                                 else {
  2597.                                   FUN_80025704(param_1,iVar3);
  2598.                                 }
  2599.                                 goto LAB_80069bf8;
  2600.                               }
  2601.                             }
  2602.                             FUN_80063038(param_2,auStack624);
  2603.                             FUN_80022930(param_1,auStack608);
  2604.                             FUN_8004d870(auStack624,auStack608);
  2605.                             iVar3 = FUN_80024a48(param_1,0x1e);
  2606.                             if (((iVar3 == 0) && (iVar3 = FUN_80023a8c(0), iVar3 == 0)) &&
  2607.                                (iVar3 = FUN_80062b1c(), iVar3 == 0)) {
  2608.                               iVar3 = FUN_8004d870(auStack608,auStack624);
  2609.                               if (iVar3 < -0x199) {
  2610.                                 uVar16 = FUN_8002047c(_DAT_ffff8b0c);
  2611.                                 uVar16 = FUN_800211f0(0,0x3fe00000,(int)((ulonglong)uVar16 >> 0x20),
  2612.                                                       (int)uVar16);
  2613.                                 uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0
  2614.                                                       ,0x40cf0200);
  2615.                                 uVar16 = FUN_800212ec(0,0x3ff00000,(int)((ulonglong)uVar16 >> 0x20),
  2616.                                                       (int)uVar16);
  2617.                                 uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),
  2618.                                                       (int)uVar16);
  2619.                                 uVar5 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16
  2620.                                                        );
  2621.                               }
  2622.                               else {
  2623.                                 uVar16 = FUN_8002047c(_DAT_ffff8b0c);
  2624.                                 uVar16 = FUN_800211f0(0x9999999a,0x3fd99999,
  2625.                                                       (int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  2626.                                 uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0
  2627.                                                       ,0x40cf0200);
  2628.                                 uVar16 = FUN_800212ec(0,0x3ff00000,(int)((ulonglong)uVar16 >> 0x20),
  2629.                                                       (int)uVar16);
  2630.                                 uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),
  2631.                                                       (int)uVar16);
  2632.                                 uVar5 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16
  2633.                                                        );
  2634.                               }
  2635.                             }
  2636.                             else {
  2637.                               iVar3 = FUN_8004d870(auStack608,auStack624);
  2638.                               if (iVar3 < -0x199) {
  2639.                                 uVar16 = FUN_8002047c(_DAT_ffff8b0c);
  2640.                                 uVar16 = FUN_800211f0(0x66666666,0x3fd66666,
  2641.                                                       (int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  2642.                                 uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0
  2643.                                                       ,0x40cf0200);
  2644.                                 uVar16 = FUN_800212ec(0,0x3ff00000,(int)((ulonglong)uVar16 >> 0x20),
  2645.                                                       (int)uVar16);
  2646.                                 uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),
  2647.                                                       (int)uVar16);
  2648.                                 uVar5 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16
  2649.                                                        );
  2650.                               }
  2651.                               else {
  2652.                                 uVar16 = FUN_8002047c(_DAT_ffff8b0c);
  2653.                                 uVar16 = FUN_800211f0(0,0x3fd00000,(int)((ulonglong)uVar16 >> 0x20),
  2654.                                                       (int)uVar16);
  2655.                                 uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0
  2656.                                                       ,0x40cf0200);
  2657.                                 uVar16 = FUN_800212ec(0,0x3ff00000,(int)((ulonglong)uVar16 >> 0x20),
  2658.                                                       (int)uVar16);
  2659.                                 uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),
  2660.                                                       (int)uVar16);
  2661.                                 uVar5 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16
  2662.                                                        );
  2663.                               }
  2664.                             }
  2665.                             uVar5 = FUN_800223d4(auStack608,uVar5,auStack624);
  2666.                             thunk_FUN_80051ce0(param_1,uVar5);
  2667.                           }
  2668.                         }
  2669.                         else {
  2670.                           iVar3 = FUN_80024a48(param_1,0x1e);
  2671.                           if ((((iVar3 == 0) && (3 < *(int *)(param_2 + 0x3c))) &&
  2672.                               (*(int *)(param_2 + 0xbc) == 0)) &&
  2673.                              ((*(int *)(param_2 + 0xb8) != 1 && (5 < *(int *)(param_2 + 0x44))))) {
  2674.                             _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  2675.                             FUN_800351a8(1);
  2676.                             iVar3 = FUN_80023a8c(0);
  2677.                             if ((iVar3 == 0) && (iVar3 = FUN_80062b1c(), iVar3 == 0)) {
  2678.                               FUN_800642a8(param_1,param_2);
  2679.                               return 1;
  2680.                             }
  2681.                             FUN_80064210(param_1,param_2);
  2682.                             return 1;
  2683.                           }
  2684.                         }
  2685.                       }
  2686.                       else {
  2687.                         _DAT_ffff8b10 = 0;
  2688.                       }
  2689.                     }
  2690.                   }
  2691.                   else {
  2692.                     if ((*(int *)(param_2 + 0xbc) == 0) && (*(int *)(param_2 + 0xb8) != 1)) {
  2693.                       FUN_800351a8(1);
  2694.                       *(undefined4 *)(param_2 + 0xbc) = 0;
  2695.                       _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  2696.                       FUN_80064650(param_1,param_2);
  2697.                       *(undefined4 *)(param_2 + 0xb8) = 0;
  2698.                       *(undefined4 *)(param_2 + 0x40) = 3;
  2699.                       goto LAB_8006f624;
  2700.                     }
  2701.                   }
  2702.                 }
  2703. LAB_80069bf8:
  2704.                 iVar3 = FUN_80064ea4(param_1,param_2);
  2705.                 if (iVar3 == 1) {
  2706.                   param_2 = param_2 + 0x10c;
  2707.                   FUN_800226d8(param_1,param_2);
  2708.                   FUN_8004d8e0(param_2,param_2,0x2000);
  2709.                   return 1;
  2710.                 }
  2711. LAB_80069cfc:
  2712.                 iVar3 = FUN_80023a8c(0xc);
  2713.                 if ((((iVar3 != 0) && (iVar3 = FUN_80024a48(param_1,0x1e), iVar3 == 0)) &&
  2714.                     ((_DAT_ffff8910 & 0x10) == 0)) && (iVar3 = FUN_80024afc(iVar4), iVar3 == 0)) {
  2715.                   FUN_80063038(param_2,auStack592);
  2716.                   if ((_DAT_ffff8afc < 0x33) && (_DAT_ffff8b00 < 0x33)) {
  2717.                     FUN_8004d8e0(auStack592,auStack592,0x8000);
  2718.                     *(undefined2 *)(param_2 + 0xc4) = 0;
  2719.                   }
  2720.                   else {
  2721.                     FUN_8004d8e0(auStack592,auStack592,((_DAT_ffff8b0c << 2) / 0x3d09 + 4) * 0x1000)
  2722.                     ;
  2723.                     *(undefined2 *)(param_2 + 0xc4) = 0;
  2724.                   }
  2725.                   FUN_8002535c(param_1,auStack592);
  2726.                   if ((*(int *)(param_2 + 0xb8) != 0) && (*(int *)(param_2 + 0xbc) == 0)) {
  2727.                     *(undefined4 *)(param_2 + 0xbc) = 0;
  2728.                     *(undefined4 *)(param_2 + 0xb8) = 0;
  2729.                   }
  2730.                 }
  2731.                 FUN_800655e0(param_1,param_2);
  2732.                 FUN_80065ae8(param_1,param_2);
  2733.                 iVar3 = FUN_800375cc(param_1);
  2734.                 if (iVar3 == 0) {
  2735.                   iVar3 = FUN_80024afc(iVar4);
  2736.                   if (((iVar3 != 0) && (*(int *)(param_2 + 0xbc) == 0)) &&
  2737.                      ((iVar3 = FUN_8003758c(param_1,2), iVar3 != 0 ||
  2738.                       (iVar3 = FUN_8003758c(param_1,1), iVar3 != 0)))) {
  2739.                     FUN_800256d4(param_1,0);
  2740.                     change_action(param_1,0,0xffff81e4,0xffff81dc,0x132c);
  2741.                     *(undefined4 *)(param_2 + 0xbc) = 0;
  2742.                   }
  2743.                 }
  2744.                 else {
  2745.                   iVar3 = FUN_8003758c(param_1,0x69);
  2746.                   if ((((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x4f), iVar3 == 0)) &&
  2747.                       (iVar3 = FUN_8003758c(param_1,0x48), iVar3 == 0)) &&
  2748.                      ((iVar3 = FUN_8003758c(param_1,0x52), iVar3 == 0 &&
  2749.                       (iVar3 = FUN_8003758c(param_1,0x4d), iVar3 == 0)))) {
  2750.                     iVar3 = FUN_8003758c(param_1,0x6a);
  2751.                     if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x49), iVar3 == 0)) {
  2752.                       iVar3 = FUN_8003758c(param_1,0x68);
  2753.                       if (iVar3 == 0) {
  2754.                         iVar3 = FUN_8003758c(param_1,0x66);
  2755.                         if (iVar3 == 0) {
  2756.                           iVar3 = FUN_8003758c(param_1,0x21);
  2757.                           if (iVar3 == 0) {
  2758.                             iVar3 = FUN_8003758c(param_1,0x22);
  2759.                             if (iVar3 == 0) {
  2760.                               change_action(param_1,0,0xffff81e4,0xffff81dc,0x131e);
  2761.                               *(undefined2 *)(param_2 + 0xcc) = 1;
  2762.                               *(undefined4 *)(param_2 + 0xbc) = 0;
  2763.                               *(undefined2 *)(param_2 + 0xce) = 0;
  2764.                             }
  2765.                             else {
  2766.                               change_action(param_1,0x66,"YLT_PoingDelai2",0xffff81dc,0x130e);
  2767.                               *(undefined4 *)(param_2 + 0xbc) = 0;
  2768.                               *(undefined2 *)(param_2 + 0xcc) = 1;
  2769.                             }
  2770.                           }
  2771.                           else {
  2772.                             change_action(param_1,0x68,"YLT_PoingDelai1",0xffff81dc,0x1309);
  2773.                             *(undefined4 *)(param_2 + 0xbc) = 0;
  2774.                             *(undefined2 *)(param_2 + 0xcc) = 2;
  2775.                           }
  2776.                         }
  2777.                         else {
  2778.                           change_action(param_1,0x6c,"YLT_PoingFin2",0xffff81dc,0x1303);
  2779.                           *(undefined4 *)(param_2 + 0xbc) = 0;
  2780.                           *(undefined2 *)(param_2 + 0xcc) = 1;
  2781.                           *(undefined2 *)(param_2 + 0xce) = 0;
  2782.                         }
  2783.                       }
  2784.                       else {
  2785.                         change_action(param_1,0x6b,"YLT_PoingFin1",0xffff81dc,0x12fd);
  2786.                         *(undefined4 *)(param_2 + 0xbc) = 0;
  2787.                         *(undefined2 *)(param_2 + 0xcc) = 1;
  2788.                         *(undefined2 *)(param_2 + 0xce) = 0;
  2789.                       }
  2790.                     }
  2791.                     else {
  2792.                       change_action(param_1,0x66,"YLT_PoingDelai2",0xffff81dc,0x12f8);
  2793.                       *(undefined4 *)(param_2 + 0xbc) = 0;
  2794.                       *(undefined2 *)(param_2 + 0xcc) = 1;
  2795.                     }
  2796.                   }
  2797.                   else {
  2798.                     change_action(param_1,0x68,"YLT_PoingDelai1",0xffff81dc,0x12f1);
  2799.                     *(undefined4 *)(param_2 + 0xbc) = 0;
  2800.                     *(undefined2 *)(param_2 + 0xcc) = 2;
  2801.                   }
  2802.                 }
  2803.                 iVar3 = FUN_8003758c(param_1,0);
  2804.                 if ((((iVar3 != 0) || (iVar3 = FUN_8003758c(param_1,5), iVar3 != 0)) ||
  2805.                     (iVar3 = FUN_8003758c(param_1,0x5a), iVar3 != 0)) ||
  2806.                    (((iVar3 = FUN_8003758c(param_1,4), iVar3 != 0 ||
  2807.                      (iVar3 = FUN_8003758c(param_1,0x59), iVar3 != 0)) ||
  2808.                     (iVar3 = FUN_8003758c(param_1,0x14), iVar3 != 0)))) {
  2809.                   change_action(param_1,0,0xffff81e4,0xffff81dc,0x133b);
  2810.                   *(undefined4 *)(param_2 + 0xb8) = 0;
  2811.                   *(undefined4 *)(param_2 + 0xbc) = 0;
  2812.                 }
  2813.                 FUN_80067930(param_1,param_2);
  2814.                 iVar3 = FUN_8002376c(0xb);
  2815.                 if (((iVar3 != 0) && (*(int *)(param_2 + 0xbc) == 1)) ||
  2816.                    ((iVar3 = FUN_80023a8c(0xb), iVar3 == 0 && (*(int *)(param_2 + 0xbc) == 1)))) {
  2817.                   if (0x32 < *(short *)(param_2 + 0x108)) {
  2818.                     _DAT_ffff8220 = 2;
  2819.                   }
  2820.                   change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x1349);
  2821.                   *(undefined2 *)(param_2 + 0xce) = 1;
  2822.                   *(undefined4 *)(param_2 + 0xbc) = 2;
  2823.                   *(undefined4 *)(param_2 + 0xb8) = 0;
  2824.                   *(undefined4 *)(param_2 + 0x6c) = 1;
  2825.                   *(undefined2 *)(param_2 + 0x108) = 0;
  2826.                   FUN_80065d10(param_1,param_2);
  2827.                   FUN_8003db2c(1,0);
  2828.                 }
  2829.                 iVar3 = FUN_8003dd18();
  2830.                 if ((((iVar3 == 0) && (iVar3 = FUN_80024afc(iVar4), iVar3 != 0)) &&
  2831.                     (*(int *)(param_2 + 0x24c) == 1)) &&
  2832.                    ((_DAT_ffff8afc < 0x32 && (_DAT_ffff8b00 < 0x32)))) {
  2833.                   iVar3 = FUN_800231fc();
  2834.                   if (iVar3 < 0) {
  2835.                     iVar3 = FUN_800231fc();
  2836.                     iVar3 = -iVar3;
  2837.                   }
  2838.                   else {
  2839.                     iVar3 = FUN_800231fc();
  2840.                   }
  2841.                   if (0x31 < iVar3) goto LAB_8006a33c;
  2842.                   iVar3 = FUN_8002318c();
  2843.                   if (iVar3 < 0) {
  2844.                     iVar3 = FUN_8002318c();
  2845.                     iVar3 = -iVar3;
  2846.                   }
  2847.                   else {
  2848.                     iVar3 = FUN_8002318c();
  2849.                   }
  2850.                   if (0x31 < iVar3) goto LAB_8006a33c;
  2851.                   _DAT_ffff8b14 = _DAT_ffff8b14 + 1;
  2852.                   if (0x1c2 < _DAT_ffff8b14) {
  2853.                     change_action(param_1,0x99,0xffff8214,0xffff81dc,0x1362);
  2854.                     FUN_80024da4(param_1,0x60);
  2855.                     _DAT_ffff8b14 = 0;
  2856.                     return 1;
  2857.                   }
  2858.                 }
  2859.                 else {
  2860. LAB_8006a33c:
  2861.                   _DAT_ffff8b14 = 0;
  2862.                 }
  2863.                 if (((*(int *)(param_2 + 0x24c) != 1) ||
  2864.                     ((iVar3 = FUN_8002326c(0xb), iVar3 == 0 &&
  2865.                      (iVar3 = FUN_80023a8c(0xb), iVar3 == 0)))) ||
  2866.                    ((*(int *)(param_2 + 0xbc) != 0 && (*(int *)(param_2 + 0xbc) != 1)))) {
  2867.                   if ((((*(int *)(param_2 + 0x24c) == 1) && (iVar3 = FUN_8002376c(0xb), iVar3 != 0))
  2868.                       && (*(short *)(param_2 + 0xce) == 0)) &&
  2869.                      ((_DAT_ffff821c == 1 && (*(int *)(param_2 + 0xb8) == 1)))) {
  2870.                     change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x13d4);
  2871.                     FUN_800663cc(param_1,param_2);
  2872.                   }
  2873. LAB_8006a724:
  2874.                   if ((*(int *)(param_2 + 0x24c) == 1) &&
  2875.                      ((iVar3 = FUN_8002376c(0xb), iVar3 != 0 ||
  2876.                       (iVar3 = FUN_80023a8c(0xb), iVar3 == 0)))) {
  2877.                     *(undefined4 *)(param_2 + 0x6c) = 1;
  2878.                   }
  2879.                   iVar3 = FUN_80024b78(param_1,0x5d);
  2880.                   if ((iVar3 == 0) && (iVar3 = FUN_800240d4(param_1,1), iVar3 != 0)) {
  2881.                     _DAT_ffff8b30 = 0;
  2882.                     return 1;
  2883.                   }
  2884.                   if (-1 < _DAT_ffff8b30) {
  2885.                     iVar3 = FUN_80024b78(param_1,0x5d);
  2886.                     if (iVar3 != 0) {
  2887.                       iVar3 = param_2 + 0x170;
  2888.                       FUN_80022e44(param_1,iVar3);
  2889.                       FUN_8004db84(iVar3,iVar3);
  2890.                       FUN_8004d8e0(iVar3,iVar3,0x5000);
  2891.                       FUN_8002535c(param_1,iVar3);
  2892.                     }
  2893.                     FUN_8002214c(param_1,param_2 + 0x1b4);
  2894.                     *(undefined4 *)(param_2 + 0x40) = 0;
  2895.                     FUN_800647b4(param_1,param_2);
  2896.                     FUN_800351a8(1);
  2897.                     *(undefined4 *)(param_2 + 0x44) = 0;
  2898.                     *(undefined4 *)(param_2 + 100) = 1;
  2899.                     _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  2900.                     _DAT_ffff8b30 = 0;
  2901.                     return 1;
  2902.                   }
  2903.                   _DAT_ffff8b30 = _DAT_ffff8b30 + 1;
  2904.                   return 1;
  2905.                 }
  2906.                 iVar3 = FUN_80024a48(param_1,0x1e);
  2907.                 if (((iVar3 != 0) || (iVar3 = FUN_80024afc(iVar4), iVar3 != 0)) ||
  2908.                    ((*(int *)(param_2 + 0xbc) != 0 || ((_DAT_ffff8910 & 0x10) != 0)))) {
  2909.                   if (*(short *)(param_2 + 0xce) == 0) {
  2910.                     iVar3 = FUN_80023a8c(0xb);
  2911.                     if ((iVar3 != 0) && (*(int *)(param_2 + 0xb8) == 1)) {
  2912.                       *(short *)(param_2 + 0x108) = *(short *)(param_2 + 0x108) + 1;
  2913.                     }
  2914.                     if ((*(int *)(param_2 + 0xc0) == 0) || (*(int *)(param_2 + 0xb8) != 1)) {
  2915.                       if ((_DAT_ffff821c == 1) &&
  2916.                          (((iVar3 = FUN_80023a8c(0xb), iVar3 != 0 && (*(int *)(param_2 + 0xb8) != 1)
  2917.                            ) && (*(int *)(param_2 + 0x6c) == 1)))) {
  2918.                         *(undefined2 *)(param_2 + 0xce) = 0;
  2919.                         change_action(param_1,8,"YLT_PoingDebut",0xffff81dc,0x13ab);
  2920.                         *(undefined2 *)(param_2 + 0xcc) = 1;
  2921.                         *(undefined4 *)(param_2 + 0xb8) = 1;
  2922.                         *(undefined4 *)(param_2 + 0xbc) = 1;
  2923.                         *(undefined4 *)(param_2 + 0x6c) = 0;
  2924.                       }
  2925.                       else {
  2926.                         iVar3 = FUN_8002326c(0xb);
  2927.                         if ((iVar3 != 0) && (_DAT_ffff821c == 0)) {
  2928.                           change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x13b3);
  2929.                           *(undefined2 *)(param_2 + 0xce) = 1;
  2930.                           *(undefined4 *)(param_2 + 0xbc) = 2;
  2931.                         }
  2932.                       }
  2933.                     }
  2934.                     else {
  2935.                       if (0xa0 < *(short *)(param_2 + 0x108)) {
  2936.                         FUN_8003db2c(1,0);
  2937.                         _DAT_ffff8220 = 2;
  2938.                         FUN_80065d10(param_1,param_2);
  2939.                         change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x139c);
  2940.                         *(undefined2 *)(param_2 + 0xce) = 1;
  2941.                         *(undefined4 *)(param_2 + 0xbc) = 2;
  2942.                         *(undefined4 *)(param_2 + 0xb8) = 0;
  2943.                         *(undefined2 *)(param_2 + 0x108) = 0;
  2944.                       }
  2945.                     }
  2946.                   }
  2947.                   else {
  2948.                     FUN_80065d10(param_1,param_2);
  2949.                     *(undefined2 *)(param_2 + 0x108) = 0;
  2950.                     iVar3 = FUN_8002326c(0xb);
  2951.                     if (iVar3 != 0) {
  2952.                       if (*(short *)(param_2 + 0xcc) == 1) {
  2953.                         change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x13c2);
  2954.                       }
  2955.                       else {
  2956.                         if (*(short *)(param_2 + 0xcc) == 2) {
  2957.                           change_action(param_1,0x6a,"YLT_PoingTir2",0xffff81dc,0x13c6);
  2958.                         }
  2959.                       }
  2960.                       *(undefined4 *)(param_2 + 0xbc) = 2;
  2961.                     }
  2962.                   }
  2963.                   goto LAB_8006a724;
  2964.                 }
  2965.                 iVar3 = FUN_80023a8c(0xc);
  2966.                 if (iVar3 == 0) goto LAB_8006a408;
  2967.                 FUN_80064650(param_1,param_2);
  2968.                 _DAT_ffff8910 = _DAT_ffff8910 & 0xfffffffe;
  2969.               }
  2970. LAB_8006f624:
  2971.               iVar3 = FUN_80024a48(param_1,0x1f);
  2972.               if (((iVar3 != 0) &&
  2973.                   (*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18
  2974.                                      ) + 0x99) != '\0')) && (iVar3 = FUN_80023a8c(0xc), iVar3 == 0))
  2975.               {
  2976.                 return 1;
  2977.               }
  2978.               FUN_800258d4(param_1,0x1f,0);
  2979.               FUN_80062378(param_1,param_2);
  2980.               iVar3 = FUN_80064ea4(param_1,param_2);
  2981.               if (iVar3 == 1) {
  2982.                 if (*(int *)(param_2 + 0xc0) == 0) {
  2983.                   return 1;
  2984.                 }
  2985.                 change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x2199);
  2986.                 *(undefined2 *)(param_2 + 0xce) = 1;
  2987.                 *(undefined4 *)(param_2 + 0xbc) = 2;
  2988.                 *(undefined4 *)(param_2 + 0xb8) = 0;
  2989.                 *(undefined2 *)(param_2 + 0x108) = 0;
  2990.                 FUN_80065d10(param_1,param_2);
  2991.                 FUN_8003db2c(1,0);
  2992.                 return 1;
  2993.               }
  2994.               _DAT_ffff8b48 = FUN_8006437c(param_1,param_2);
  2995.               iVar4 = param_2 + 0x74;
  2996.               iVar3 = FUN_80024afc(iVar4);
  2997.               if ((iVar3 == 0) &&
  2998.                  (((*(int *)(param_2 + 0x184) == 0 ||
  2999.                    (iVar3 = FUN_8003758c(param_1,0x3d), iVar3 != 0)) ||
  3000.                   ((iVar3 = FUN_8003758c(param_1,0x3e), iVar3 != 0 ||
  3001.                    ((iVar3 = FUN_8003758c(param_1,0x3a), iVar3 != 0 ||
  3002.                     (iVar3 = FUN_8003758c(param_1,0x3c), iVar3 != 0)))))))) {
  3003.                 if ((*(int *)(param_2 + 0xbc) == 0) && (*(int *)(param_2 + 0xb8) == 0)) {
  3004.                   FUN_80064440(param_1,param_2);
  3005.                 }
  3006.                 else {
  3007.                   if ((*(int *)(param_2 + 0xbc) == 1) && (_DAT_ffff821c == 1)) {
  3008.                     *(undefined2 *)(param_2 + 0x182) = 0;
  3009.                     *(undefined4 *)(param_2 + 0x184) = 0;
  3010.                     FUN_80064548(param_1,param_2);
  3011.                   }
  3012.                 }
  3013.               }
  3014.               FUN_80067930(param_1,param_2);
  3015.               iVar3 = FUN_80023a8c(0xb);
  3016.               if ((iVar3 == 0) && (*(int *)(param_2 + 0xbc) == 1)) {
  3017.                 if (0x32 < *(short *)(param_2 + 0x108)) {
  3018.                   _DAT_ffff8220 = 2;
  3019.                 }
  3020.                 *(undefined2 *)(param_2 + 0x108) = 0;
  3021.                 FUN_80065d10(param_1,param_2);
  3022.                 *(undefined4 *)(param_2 + 0xb8) = 0;
  3023.                 *(undefined2 *)(param_2 + 0xce) = 1;
  3024.                 *(undefined4 *)(param_2 + 0x6c) = 1;
  3025.                 *(undefined4 *)(param_2 + 0xbc) = 2;
  3026.                 FUN_8003db2c(1,0);
  3027.                 if (_DAT_ffff8b48 == 3) {
  3028.                   FUN_80063798(param_1,param_2);
  3029.                 }
  3030.                 else {
  3031.                   if (_DAT_ffff8b48 == 2) {
  3032.                     FUN_800636fc(param_1,param_2);
  3033.                   }
  3034.                   else {
  3035.                     if (_DAT_ffff8b48 == 1) {
  3036.                       FUN_80063660(param_1,param_2);
  3037.                     }
  3038.                     else {
  3039.                       if (_DAT_ffff8b48 == 0) {
  3040.                         FUN_800635c4(param_1,param_2);
  3041.                       }
  3042.                     }
  3043.                   }
  3044.                 }
  3045.               }
  3046.               iVar3 = FUN_8002326c(0xb);
  3047.               if (((iVar3 == 0) && (iVar3 = FUN_80023a8c(0xb), iVar3 == 0)) ||
  3048.                  ((*(int *)(param_2 + 0xbc) != 0 && (*(int *)(param_2 + 0xbc) != 1)))) {
  3049.                 iVar3 = FUN_8002376c(0xb);
  3050.                 if ((((iVar3 != 0) && (*(short *)(param_2 + 0xce) == 0)) && (_DAT_ffff821c == 1)) &&
  3051.                    (*(int *)(param_2 + 0xb8) == 1)) {
  3052.                   *(undefined2 *)(param_2 + 0x108) = 0;
  3053.                   FUN_80065d10(param_1,param_2);
  3054.                   *(undefined4 *)(param_2 + 0xb8) = 0;
  3055.                   *(undefined2 *)(param_2 + 0xce) = 1;
  3056.                   *(undefined4 *)(param_2 + 0x6c) = 1;
  3057.                   FUN_8003db2c(1,0);
  3058.                   if (_DAT_ffff8b48 != 3) {
  3059.                     if (_DAT_ffff8b48 == 2) {
  3060.                       FUN_800636fc(param_1,param_2);
  3061.                       iVar3 = *(int *)(param_2 + 0x24c);
  3062.                     }
  3063.                     else {
  3064.                       if (_DAT_ffff8b48 == 1) {
  3065.                         FUN_80063660(param_1,param_2);
  3066.                         iVar3 = *(int *)(param_2 + 0x24c);
  3067.                       }
  3068.                       else {
  3069.                         if (_DAT_ffff8b48 != 0) goto LAB_8006fe5c;
  3070.                         FUN_800635c4(param_1,param_2);
  3071.                         iVar3 = *(int *)(param_2 + 0x24c);
  3072.                       }
  3073.                     }
  3074.                     goto LAB_8006fe60;
  3075.                   }
  3076.                   FUN_80063798(param_1,param_2);
  3077.                 }
  3078. LAB_8006fe5c:
  3079.                 iVar3 = *(int *)(param_2 + 0x24c);
  3080.               }
  3081.               else {
  3082.                 if ((*(int *)(param_2 + 0x6c) == 1) && (_DAT_ffff821c != 0)) {
  3083.                   *(undefined4 *)(param_2 + 0xbc) = 1;
  3084.                 }
  3085.                 if (*(short *)(param_2 + 0xce) != 0) {
  3086.                   iVar3 = FUN_8002326c(0xb);
  3087.                   if (iVar3 != 0) {
  3088.                     *(undefined2 *)(param_2 + 0x108) = 0;
  3089.                     FUN_80065d10(param_1,param_2);
  3090.                     *(undefined4 *)(param_2 + 0xb8) = 0;
  3091.                     *(undefined4 *)(param_2 + 0xbc) = 2;
  3092.                     if (_DAT_ffff8b48 == 3) {
  3093.                       FUN_80063798(param_1,param_2);
  3094.                       iVar3 = *(int *)(param_2 + 0x24c);
  3095.                     }
  3096.                     else {
  3097.                       if (_DAT_ffff8b48 == 2) {
  3098.                         FUN_800636fc(param_1,param_2);
  3099.                         iVar3 = *(int *)(param_2 + 0x24c);
  3100.                       }
  3101.                       else {
  3102.                         if (_DAT_ffff8b48 == 1) {
  3103.                           FUN_80063660(param_1,param_2);
  3104.                           iVar3 = *(int *)(param_2 + 0x24c);
  3105.                         }
  3106.                         else {
  3107.                           if (_DAT_ffff8b48 != 0) goto LAB_8006fe5c;
  3108.                           FUN_800635c4(param_1,param_2);
  3109.                           iVar3 = *(int *)(param_2 + 0x24c);
  3110.                         }
  3111.                       }
  3112.                     }
  3113.                     goto LAB_8006fe60;
  3114.                   }
  3115.                   iVar3 = FUN_80023a8c(0xb);
  3116.                   if (iVar3 != 0) {
  3117.                     *(undefined2 *)(param_2 + 0xce) = 0;
  3118.                   }
  3119.                   goto LAB_8006fe5c;
  3120.                 }
  3121.                 iVar3 = FUN_80023a8c(0xb);
  3122.                 if ((iVar3 != 0) && (*(int *)(param_2 + 0xb8) == 1)) {
  3123.                   *(short *)(param_2 + 0x108) = *(short *)(param_2 + 0x108) + 1;
  3124.                 }
  3125.                 if ((*(int *)(param_2 + 0xc0) != 0) && (iVar3 = FUN_8003758c(param_1,8), iVar3 == 0)
  3126.                    ) {
  3127.                   if (0xa0 < *(short *)(param_2 + 0x108)) {
  3128.                     _DAT_ffff8220 = 2;
  3129.                     FUN_8003db2c(1,0);
  3130.                     *(undefined4 *)(param_2 + 0xbc) = 2;
  3131.                     *(undefined4 *)(param_2 + 0xb8) = 0;
  3132.                     *(undefined2 *)(param_2 + 0xce) = 1;
  3133.                     *(undefined2 *)(param_2 + 0x108) = 0;
  3134.                     FUN_80065d10(param_1,param_2);
  3135.                     *(undefined4 *)(param_2 + 0xb8) = 0;
  3136.                     if (_DAT_ffff8b48 == 3) {
  3137.                       *(undefined4 *)(param_2 + 0x184) = 4;
  3138.                       change_action(param_1,0x4d,"YLT_Bloc_Tir_G_Tir1",0xffff81dc,0x2225);
  3139.                       *(undefined2 *)(param_2 + 0x182) = 1;
  3140.                       *(undefined4 *)(param_2 + 0x48) = 0x4d;
  3141.                     }
  3142.                     else {
  3143.                       if (_DAT_ffff8b48 == 2) {
  3144.                         *(undefined4 *)(param_2 + 0x184) = 3;
  3145.                         change_action(param_1,0x52,"YLT_Bloc_Tir_D_Tir1",0xffff81dc,0x221f);
  3146.                         *(undefined2 *)(param_2 + 0x182) = 1;
  3147.                         *(undefined4 *)(param_2 + 0x48) = 0x52;
  3148.                       }
  3149.                       else {
  3150.                         if (_DAT_ffff8b48 == 1) {
  3151.                           *(undefined4 *)(param_2 + 0x184) = 2;
  3152.                           change_action(param_1,0x48,"YLT_Bloc_Tir_AR_Tir1",0xffff81dc,0x2219);
  3153.                           *(undefined2 *)(param_2 + 0x182) = 1;
  3154.                           *(undefined4 *)(param_2 + 0x48) = 0x48;
  3155.                         }
  3156.                         else {
  3157.                           if (_DAT_ffff8b48 == 0) {
  3158.                             *(undefined4 *)(param_2 + 0x184) = 1;
  3159.                             change_action(param_1,0x4f,"YLT_Bloc_Tir_AV_Tir1",0xffff81dc,0x2213);
  3160.                             *(undefined2 *)(param_2 + 0x182) = 1;
  3161.                             *(undefined4 *)(param_2 + 0x48) = 0x4f;
  3162.                           }
  3163.                         }
  3164.                       }
  3165.                     }
  3166.                   }
  3167.                   goto LAB_8006fe5c;
  3168.                 }
  3169.                 iVar3 = FUN_80023a8c(0xb);
  3170.                 if (((iVar3 == 0) || (_DAT_ffff821c != 1)) ||
  3171.                    (((*(int *)(param_2 + 0x6c) != 1 || (*(int *)(param_2 + 0xb8) == 1)) &&
  3172.                     ((*(int *)(param_2 + 0x6c) == 1 || (*(int *)(param_2 + 0xb8) != 1)))))) {
  3173.                   iVar3 = FUN_8002326c(0xb);
  3174.                   if ((iVar3 == 0) || (_DAT_ffff821c != 0)) goto LAB_8006fe5c;
  3175.                   *(undefined4 *)(param_2 + 0xbc) = 2;
  3176.                   *(undefined4 *)(param_2 + 0xb8) = 0;
  3177.                   *(undefined2 *)(param_2 + 0xce) = 1;
  3178.                   if (_DAT_ffff8b48 == 3) {
  3179.                     FUN_80063798(param_1,param_2);
  3180.                     iVar3 = *(int *)(param_2 + 0x24c);
  3181.                   }
  3182.                   else {
  3183.                     if (_DAT_ffff8b48 == 2) {
  3184.                       FUN_800636fc(param_1,param_2);
  3185.                       iVar3 = *(int *)(param_2 + 0x24c);
  3186.                     }
  3187.                     else {
  3188.                       if (_DAT_ffff8b48 == 1) {
  3189.                         FUN_80063660(param_1,param_2);
  3190.                         iVar3 = *(int *)(param_2 + 0x24c);
  3191.                       }
  3192.                       else {
  3193.                         if (_DAT_ffff8b48 != 0) goto LAB_8006fe5c;
  3194.                         FUN_800635c4(param_1,param_2);
  3195.                         iVar3 = *(int *)(param_2 + 0x24c);
  3196.                       }
  3197.                     }
  3198.                   }
  3199.                 }
  3200.                 else {
  3201.                   *(undefined2 *)(param_2 + 0xce) = 0;
  3202.                   *(undefined4 *)(param_2 + 0xb8) = 1;
  3203.                   *(undefined4 *)(param_2 + 0xbc) = 1;
  3204.                   *(undefined4 *)(param_2 + 0x6c) = 0;
  3205.                   iVar3 = FUN_80024afc(iVar4);
  3206.                   if (iVar3 != 0) {
  3207.                     change_action(param_1,8,"YLT_PoingDebut",0xffff81dc,0x2252);
  3208.                     *(undefined4 *)(param_2 + 0x48) = 8;
  3209.                     goto LAB_8006fe5c;
  3210.                   }
  3211.                   *(undefined2 *)(param_2 + 0x182) = 0;
  3212.                   *(undefined4 *)(param_2 + 0x184) = 0;
  3213.                   FUN_80064548(param_1,param_2);
  3214.                   iVar3 = *(int *)(param_2 + 0x24c);
  3215.                 }
  3216.               }
  3217. LAB_8006fe60:
  3218.               if ((iVar3 == 1) &&
  3219.                  ((iVar3 = FUN_8002376c(0xb), iVar3 != 0 || (iVar3 = FUN_80023a8c(0xb), iVar3 == 0))
  3220.                  )) {
  3221.                 *(undefined4 *)(param_2 + 0x6c) = 1;
  3222.               }
  3223.               iVar3 = FUN_80024afc(iVar4);
  3224.               if (((iVar3 != 0) && (*(int *)(param_2 + 0xc0) != 0)) &&
  3225.                  (iVar3 = FUN_80023a8c(0xb), iVar3 == 0)) {
  3226.                 *(undefined2 *)(param_2 + 0x108) = 0;
  3227.                 _DAT_ffff8220 = 2;
  3228.                 FUN_80065d10(param_1,param_2);
  3229.                 *(undefined4 *)(param_2 + 0xb8) = 0;
  3230.               }
  3231.               iVar3 = FUN_800375cc(param_1);
  3232.               if (iVar3 != 0) {
  3233.                 iVar3 = *(int *)(param_2 + 0x184);
  3234.                 if (iVar3 == 1) {
  3235.                   iVar3 = FUN_8003758c(param_1,0x4f);
  3236.                   if (iVar3 == 0) {
  3237.                     iVar3 = FUN_8003758c(param_1,0x4c);
  3238.                     if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x4e), iVar3 == 0)) {
  3239.                       iVar3 = FUN_8003758c(param_1,0x49);
  3240.                       if (iVar3 != 0) {
  3241.                         *(undefined2 *)(param_2 + 0x182) = 0;
  3242.                         *(undefined4 *)(param_2 + 0xbc) = 0;
  3243.                         change_action(param_1,0x4e,"YLT_Bloc_Tir_AV_Delai2",0xffff81dc,0x22d8);
  3244.                       }
  3245.                     }
  3246.                     else {
  3247.                       change_action(param_1,0x3d,"YLT_Bloc_AV",0xffff81dc,0x22ce);
  3248.                       *(undefined4 *)(param_2 + 0xbc) = 0;
  3249.                       *(undefined2 *)(param_2 + 0x182) = 0;
  3250.                       *(undefined4 *)(param_2 + 0x184) = 0;
  3251.                       *(undefined2 *)(param_2 + 0xce) = 0;
  3252.                     }
  3253.                   }
  3254.                   else {
  3255.                     change_action(param_1,0x4c,"YLT_Bloc_Tir_AV_Delai1",0xffff81dc,0x22c8);
  3256.                     *(undefined4 *)(param_2 + 0xbc) = 0;
  3257.                     *(undefined2 *)(param_2 + 0x182) = 1;
  3258.                   }
  3259.                 }
  3260.                 else {
  3261.                   if (iVar3 == 2) {
  3262.                     iVar3 = FUN_8003758c(param_1,0x48);
  3263.                     if (iVar3 == 0) {
  3264.                       iVar3 = FUN_8003758c(param_1,0x44);
  3265.                       if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x45), iVar3 == 0)) {
  3266.                         iVar3 = FUN_8003758c(param_1,0x4a);
  3267.                         if (iVar3 != 0) {
  3268.                           *(undefined2 *)(param_2 + 0x182) = 0;
  3269.                           *(undefined4 *)(param_2 + 0xbc) = 0;
  3270.                           change_action(param_1,0x45,"YLT_Bloc_Tir_AR_Delai2",0xffff81dc,0x22f6);
  3271.                         }
  3272.                       }
  3273.                       else {
  3274.                         change_action(param_1,0x3e,"YLT_Bloc_AR",0xffff81dc,0x22ec);
  3275.                         *(undefined4 *)(param_2 + 0xbc) = 0;
  3276.                         *(undefined2 *)(param_2 + 0x182) = 0;
  3277.                         *(undefined2 *)(param_2 + 0xce) = 0;
  3278.                       }
  3279.                     }
  3280.                     else {
  3281.                       change_action(param_1,0x44,"YLT_Bloc_Tir_AR_Delai1",0xffff81dc,0x22e6);
  3282.                       *(undefined4 *)(param_2 + 0xbc) = 0;
  3283.                       *(undefined2 *)(param_2 + 0x182) = 1;
  3284.                     }
  3285.                   }
  3286.                   else {
  3287.                     if (iVar3 == 3) {
  3288.                       iVar3 = FUN_8003758c(param_1,0x52);
  3289.                       if (iVar3 == 0) {
  3290.                         iVar3 = FUN_8003758c(param_1,0x47);
  3291.                         if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x53), iVar3 == 0)) {
  3292.                           iVar3 = FUN_8003758c(param_1,0x50);
  3293.                           if (iVar3 != 0) {
  3294.                             *(undefined2 *)(param_2 + 0x182) = 0;
  3295.                             *(undefined4 *)(param_2 + 0xbc) = 0;
  3296.                             change_action(param_1,0x53,"YLT_Bloc_Tir_D_Delai2",0xffff81dc,0x2314);
  3297.                           }
  3298.                         }
  3299.                         else {
  3300.                           change_action(param_1,0x3a,"YLT_Bloc_D",0xffff81dc,0x230a);
  3301.                           *(undefined4 *)(param_2 + 0xbc) = 0;
  3302.                           *(undefined2 *)(param_2 + 0x182) = 0;
  3303.                           *(undefined4 *)(param_2 + 0x184) = 0;
  3304.                           *(undefined2 *)(param_2 + 0xce) = 0;
  3305.                         }
  3306.                       }
  3307.                       else {
  3308.                         change_action(param_1,0x47,"YLT_Bloc_Tir_D_Delai1",0xffff81dc,0x2304);
  3309.                         *(undefined4 *)(param_2 + 0xbc) = 0;
  3310.                         *(undefined2 *)(param_2 + 0x182) = 1;
  3311.                       }
  3312.                     }
  3313.                     else {
  3314.                       if (iVar3 == 4) {
  3315.                         iVar3 = FUN_8003758c(param_1,0x4d);
  3316.                         if (iVar3 == 0) {
  3317.                           iVar3 = FUN_8003758c(param_1,0x51);
  3318.                           if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x4b), iVar3 == 0)) {
  3319.                             iVar3 = FUN_8003758c(param_1,0x46);
  3320.                             if (iVar3 != 0) {
  3321.                               *(undefined2 *)(param_2 + 0x182) = 0;
  3322.                               *(undefined4 *)(param_2 + 0xbc) = 0;
  3323.                               change_action(param_1,0x4b,"YLT_Bloc_Tir_G_Delai2",0xffff81dc,0x2332);
  3324.                             }
  3325.                           }
  3326.                           else {
  3327.                             change_action(param_1,0x3c,"YLT_Bloc_G",0xffff81dc,9000);
  3328.                             *(undefined4 *)(param_2 + 0xbc) = 0;
  3329.                             *(undefined2 *)(param_2 + 0x182) = 0;
  3330.                             *(undefined4 *)(param_2 + 0x184) = 0;
  3331.                             *(undefined2 *)(param_2 + 0xce) = 0;
  3332.                           }
  3333.                         }
  3334.                         else {
  3335.                           change_action(param_1,0x51,"YLT_Bloc_Tir_G_Delai1",0xffff81dc,0x2322);
  3336.                           *(undefined4 *)(param_2 + 0xbc) = 0;
  3337.                           *(undefined2 *)(param_2 + 0x182) = 1;
  3338.                         }
  3339.                       }
  3340.                     }
  3341.                   }
  3342.                 }
  3343.               }
  3344.               iVar3 = FUN_8002326c(2);
  3345.               if (iVar3 != 0) {
  3346.                 if (*(int *)(param_2 + 0xb8) == 1) {
  3347.                   change_action(param_1,0x21,"JAC_SautTir1",0xffff81dc,0x2343);
  3348.                   *(undefined4 *)(param_2 + 0xbc) = 2;
  3349.                   *(undefined4 *)(param_2 + 0x13c) = 1;
  3350.                   if (*(int *)(param_2 + 0xb8) == 1) {
  3351.                     if (0x32 < *(short *)(param_2 + 0x108)) {
  3352.                       _DAT_ffff8220 = 2;
  3353.                     }
  3354.                     FUN_80065d10(param_1,param_2);
  3355.                     *(undefined2 *)(param_2 + 0x108) = 0;
  3356.                     *(undefined4 *)(param_2 + 0xb8) = 0;
  3357.                   }
  3358.                 }
  3359.                 *(undefined4 *)(param_2 + 0x40) = 0;
  3360.                 if (*(int *)(param_2 + 0xbc) != 0) {
  3361.                   FUN_80026448(param_1,0);
  3362.                   FUN_80026430(param_1,1);
  3363.                 }
  3364.                 FUN_800648d4(param_1,param_2);
  3365.                 uVar5 = FUN_80022a08(param_1);
  3366.                 iVar3 = FUN_80024460(uVar5,0x10);
  3367.                 if (iVar3 == 0) {
  3368.                   return 1;
  3369.                 }
  3370.                 FUN_800628cc(param_1,param_2);
  3371.                 return 1;
  3372.               }
  3373.               uVar5 = FUN_80022a08(param_1);
  3374.               iVar3 = FUN_80024460(uVar5,0x10);
  3375.               if (iVar3 == 0) {
  3376.                 FUN_800628cc(param_1,param_2);
  3377.               }
  3378.               else {
  3379.                 FUN_80062834(param_1,param_2);
  3380.               }
  3381.               FUN_800655e0(param_1,param_2);
  3382.               FUN_80065ae8(param_1,param_2);
  3383.               iVar3 = FUN_80024afc(iVar4);
  3384.               if (iVar3 == 0) {
  3385.                 if (*(int *)(param_2 + 0x44) < 10) {
  3386.                   _DAT_ffff8b18 = 10 - *(int *)(param_2 + 0x44);
  3387.                 }
  3388.                 else {
  3389.                   _DAT_ffff8b18 = 3;
  3390.                 }
  3391.                 *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  3392.                 FUN_80063038(param_2,&local_b0);
  3393.                 *(undefined4 *)(param_2 + 0x10c) = local_b0;
  3394.                 *(undefined4 *)(param_2 + 0x110) = local_ac;
  3395.                 *(undefined4 *)(param_2 + 0x114) = local_a8;
  3396.                 *(undefined4 *)(param_2 + 0x118) = local_a4;
  3397.                 DAT_800b987c = *(undefined4 *)(param_2 + 0x10c);
  3398.                 DAT_800b9880 = *(undefined4 *)(param_2 + 0x110);
  3399.                 DAT_800b9884 = *(undefined4 *)(param_2 + 0x114);
  3400.                 DAT_800b9888 = *(undefined4 *)(param_2 + 0x118);
  3401.                 iVar3 = FUN_800231c4();
  3402.                 iVar10 = FUN_80023234();
  3403.                 iVar6 = FUN_800231c4();
  3404.                 if (iVar6 < 0) {
  3405.                   iVar6 = FUN_800231c4();
  3406.                   iVar6 = -iVar6;
  3407.                 }
  3408.                 else {
  3409.                   iVar6 = FUN_800231c4();
  3410.                 }
  3411.                 if (iVar6 < 0x33) {
  3412.                   iVar6 = FUN_80023234();
  3413.                   if (iVar6 < 0) {
  3414.                     iVar6 = FUN_80023234();
  3415.                     iVar6 = -iVar6;
  3416.                   }
  3417.                   else {
  3418.                     iVar6 = FUN_80023234();
  3419.                   }
  3420.                   iVar7 = 0x8000;
  3421.                   if (0x32 < iVar6) goto LAB_800704e8;
  3422.                 }
  3423.                 else {
  3424. LAB_800704e8:
  3425.                   uVar16 = FUN_8002047c(iVar3 * iVar3 + iVar10 * iVar10);
  3426.                   uVar16 = FUN_800211f0(0,0x40180000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3427.                   uVar16 = FUN_800218b0((int)((ulonglong)uVar16 >> 0x20),(int)uVar16,0,0x40ce8480);
  3428.                   uVar16 = FUN_80021308(0,0x40000000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3429.                   uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3430.                   iVar7 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3431.                 }
  3432.                 if (_DAT_ffff8af4 == 0) {
  3433.                   _DAT_ffff8af4 = 0x2000;
  3434.                 }
  3435.                 else {
  3436.                   _DAT_ffff8af4 = _DAT_ffff8af4 + 0x1000;
  3437.                 }
  3438.                 if (iVar7 < _DAT_ffff8af4) {
  3439.                   _DAT_ffff8af4 = iVar7;
  3440.                 }
  3441.                 *(undefined2 *)(param_2 + 0xc4) = 0;
  3442.                 FUN_8004d8e0(&local_b0,&local_b0,_DAT_ffff8af4);
  3443.                 FUN_8002535c(param_1,&local_b0);
  3444. LAB_80070668:
  3445.                 iVar3 = FUN_80023a8c(0xc);
  3446.                 if (iVar3 == 0) {
  3447.                   _DAT_ffff8b5c = _DAT_ffff8b5c + 1;
  3448.                   if (3 < _DAT_ffff8b5c) {
  3449.                     _DAT_ffff8b5c = 0;
  3450.                     iVar3 = FUN_80024afc(iVar4);
  3451.                     if (iVar3 == 0) {
  3452.                       if (*(int *)(param_2 + 0xc0) != 0) {
  3453.                         if (0x32 < *(short *)(param_2 + 0x108)) {
  3454.                           _DAT_ffff8220 = 2;
  3455.                         }
  3456.                         change_action(param_1,0x69,"YLT_PoingTir1",0xffff81dc,0x2433);
  3457.                         *(undefined2 *)(param_2 + 0xce) = 1;
  3458.                         *(undefined4 *)(param_2 + 0xbc) = 2;
  3459.                         *(undefined4 *)(param_2 + 0xb8) = 0;
  3460.                         *(undefined2 *)(param_2 + 0x108) = 0;
  3461.                         FUN_80065d10(param_1,param_2);
  3462.                         FUN_8003db2c(1,0);
  3463.                       }
  3464.                       iVar3 = FUN_80062b1c();
  3465.                       if ((iVar3 == 0) && (iVar3 = FUN_80023a8c(0), iVar3 == 0)) {
  3466.                         FUN_80063038(param_2,auStack144);
  3467.                         thunk_FUN_80051ce0(param_1,auStack144);
  3468.                         FUN_800351a8(0);
  3469.                         FUN_800642a8(param_1,param_2);
  3470.                         _DAT_ffff8b20 = 0xffffb000;
  3471.                         return 1;
  3472.                       }
  3473.                       FUN_80064210(param_1,param_2);
  3474.                       return 1;
  3475.                     }
  3476.                     FUN_80064058(param_1,param_2);
  3477.                     *(undefined2 *)(param_2 + 0xc4) = 0;
  3478.                     _DAT_ffff8af4 = 0;
  3479.                     goto LAB_800690d4;
  3480.                   }
  3481.                 }
  3482.                 else {
  3483.                   _DAT_ffff8b5c = 0;
  3484.                 }
  3485.                 uVar5 = FUN_80022a08(param_1);
  3486.                 iVar3 = FUN_80024460(uVar5,2);
  3487.                 if ((iVar3 != 0) && (*(int *)(param_2 + 0xbc) == 0)) {
  3488.                   FUN_80024da4(param_1,0x23);
  3489.                   return 1;
  3490.                 }
  3491.                 iVar3 = FUN_800240d4(param_1,1);
  3492.                 if ((iVar3 != 0) && (iVar3 = FUN_80024b78(param_1,0x5d), iVar3 == 0)) {
  3493.                   return 1;
  3494.                 }
  3495.                 if ((3 < _DAT_ffff8b30) &&
  3496.                    ((*(int *)(param_2 + 0xbc) == 0 || (*(int *)(param_2 + 0xb8) == 1)))) {
  3497.                   if (*(int *)(param_2 + 0xb8) == 1) {
  3498.                     change_action(param_1,0x21,"JAC_SautTir1",0xffff81dc,0x2464);
  3499.                     *(undefined4 *)(param_2 + 0xbc) = 2;
  3500.                     *(undefined4 *)(param_2 + 0x13c) = 1;
  3501.                     if (*(int *)(param_2 + 0xb8) == 1) {
  3502.                       FUN_80065d10(param_1,param_2);
  3503.                       *(undefined2 *)(param_2 + 0x108) = 0;
  3504.                       *(undefined4 *)(param_2 + 0xb8) = 0;
  3505.                     }
  3506.                   }
  3507.                   iVar3 = param_2 + 0x170;
  3508.                   *(undefined4 *)(param_2 + 0x40) = 0;
  3509.                   FUN_80022e44(param_1,iVar3);
  3510.                   *(undefined4 *)(param_2 + 0x178) = 0;
  3511.                   FUN_8004db84(iVar3,iVar3);
  3512.                   FUN_8004d8e0(iVar3,iVar3,0xa000);
  3513.                   FUN_8002535c(param_1,iVar3);
  3514.                   FUN_800647b4(param_1,param_2);
  3515.                   *(undefined4 *)(param_2 + 100) = 1;
  3516.                   FUN_80065d10(param_1,param_2);
  3517.                   *(undefined2 *)(param_2 + 0x108) = 0;
  3518.                   *(undefined4 *)(param_2 + 0xb8) = 0;
  3519.                   _DAT_ffff8b30 = 0;
  3520.                   return 1;
  3521.                 }
  3522.                 _DAT_ffff8b30 = _DAT_ffff8b30 + 1;
  3523.                 return 1;
  3524.               }
  3525.               _DAT_ffff8af4 = _DAT_ffff8af4 + -0x333;
  3526.               if (_DAT_ffff8af4 < 1) {
  3527.                 _DAT_ffff8af4 = 0;
  3528.               }
  3529.               *(undefined4 *)(param_2 + 0x44) = 0;
  3530.               if (*(short *)(param_2 + 0xc4) < _DAT_ffff8b18) {
  3531.                 FUN_8004d8e0(auStack160,&DAT_800b987c,_DAT_ffff8af4);
  3532.                 FUN_8002535c(param_1,auStack160);
  3533.                 *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  3534.                 goto LAB_80070668;
  3535.               }
  3536.               FUN_80064058(param_1,param_2);
  3537.               *(undefined2 *)(param_2 + 0xc4) = 0;
  3538.               _DAT_ffff8af4 = 0;
  3539.             } while( true );
  3540.           }
  3541.           _DAT_ffff8b20 = _DAT_ffff8b20 + 0x199;
  3542.           if (0 < _DAT_ffff8b20) {
  3543.             _DAT_ffff8b20 = 0;
  3544.           }
  3545.           FUN_80026e48(param_1,_DAT_ffff8b20);
  3546.         }
  3547.         iVar3 = *(int *)(param_1 + 4);
  3548. code_r0x80068c10:
  3549.         if (*(char *)(*(int *)(*(int *)(_DAT_ffff88c0 + 0x118) + iVar3 * 0x18) + 0x99) == '\0') {
  3550.           iVar3 = FUN_80023a8c(0);
  3551.           if ((iVar3 == 0) && (iVar3 = FUN_80062b1c(), iVar3 == 0)) {
  3552.             _DAT_ffff8b3c = 0;
  3553.           }
  3554.           else {
  3555.             if (3 < _DAT_ffff8b3c) {
  3556.               _DAT_ffff8b20 = 0;
  3557.               *(undefined4 *)(param_2 + 0x44) = 0;
  3558.               FUN_80064210(param_1,param_2);
  3559.               return 1;
  3560.             }
  3561.             _DAT_ffff8b3c = _DAT_ffff8b3c + 1;
  3562.           }
  3563.         }
  3564.         iVar3 = FUN_80023a8c(0xc);
  3565.         if (iVar3 != 0) {
  3566.           _DAT_ffff8b20 = 0xffff6000;
  3567.           FUN_80064650(param_1,param_2);
  3568.           iVar3 = FUN_80023a8c(0xb);
  3569.           if (iVar3 == 0) {
  3570.             return 1;
  3571.           }
  3572.           *(undefined4 *)(param_2 + 0x6c) = 0;
  3573.           return 1;
  3574.         }
  3575.         uVar5 = FUN_80022a08(param_1);
  3576.         iVar3 = FUN_80024460(uVar5,0x10);
  3577.         if (iVar3 == 0) {
  3578.           FUN_800628cc(param_1,param_2);
  3579.         }
  3580.         else {
  3581.           FUN_80062834(param_1,param_2);
  3582.         }
  3583.         iVar3 = FUN_8002326c(0xb);
  3584.         if ((iVar3 != 0) && (*(int *)(param_2 + 0xbc) == 0)) {
  3585.           *(undefined4 *)(param_2 + 0xbc) = 2;
  3586.           if (*(short *)(param_2 + 0x182) == 0) {
  3587.             change_action(param_1,0x4f,"YLT_Bloc_Tir_AV_Tir1",0xffff81dc,0x10fa);
  3588.             *(undefined2 *)(param_2 + 0x182) = 1;
  3589.           }
  3590.           else {
  3591.             if (*(short *)(param_2 + 0x182) == 1) {
  3592.               change_action(param_1,0x49,"YLT_Bloc_Tir_AV_Tir2",0xffff81dc,0x1100);
  3593.               *(undefined2 *)(param_2 + 0x182) = 0;
  3594.             }
  3595.           }
  3596.         }
  3597.         iVar3 = FUN_8003758c(param_1,5);
  3598.         if (((iVar3 != 0) || (iVar3 = FUN_8003758c(param_1,0x5a), iVar3 != 0)) ||
  3599.            (iVar3 = FUN_8003758c(param_1,0x14), iVar3 != 0)) {
  3600.           change_action(param_1,2,0xffff81ec,0xffff81dc,0x1106);
  3601.         }
  3602.         iVar3 = FUN_800375cc(param_1);
  3603.         if (iVar3 != 0) {
  3604.           iVar3 = FUN_8003758c(param_1,0x4f);
  3605.           if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x21), iVar3 == 0)) {
  3606.             iVar3 = FUN_8003758c(param_1,0x4c);
  3607.             if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x23), iVar3 == 0)) {
  3608.               iVar3 = FUN_8003758c(param_1,0x49);
  3609.               if ((iVar3 == 0) && (iVar3 = FUN_8003758c(param_1,0x22), iVar3 == 0)) {
  3610.                 *(undefined4 *)(param_2 + 0xbc) = 0;
  3611.                 change_action(param_1,2,0xffff81ec,0xffff81dc,0x1121);
  3612.               }
  3613.               else {
  3614.                 *(undefined2 *)(param_2 + 0x182) = 0;
  3615.                 *(undefined4 *)(param_2 + 0xbc) = 0;
  3616.                 change_action(param_1,0x4e,"YLT_Bloc_Tir_AV_Delai2",0xffff81dc,0x111b);
  3617.               }
  3618.             }
  3619.             else {
  3620.               *(undefined4 *)(param_2 + 0xbc) = 0;
  3621.               *(undefined2 *)(param_2 + 0x182) = 0;
  3622.               change_action(param_1,2,0xffff81ec,0xffff81dc,0x1115);
  3623.             }
  3624.           }
  3625.           else {
  3626.             change_action(param_1,0x4c,"YLT_Bloc_Tir_AV_Delai1",0xffff81dc,0x110c);
  3627.             *(undefined4 *)(param_2 + 0xbc) = 0;
  3628.             *(undefined2 *)(param_2 + 0x182) = 1;
  3629.           }
  3630.         }
  3631.         iVar3 = FUN_8003758c(param_1,2);
  3632.         if (iVar3 != 0) {
  3633.           *(undefined4 *)(param_2 + 0xbc) = 0;
  3634.         }
  3635.         iVar3 = FUN_8003758c(param_1,0x92);
  3636.         if ((((iVar3 != 0) || (iVar3 = FUN_8003758c(param_1,0x90), iVar3 != 0)) ||
  3637.             (iVar3 = FUN_8003758c(param_1,0x91), iVar3 != 0)) ||
  3638.            (iVar3 = FUN_8003758c(param_1,0x96), iVar3 != 0)) {
  3639.           change_action(param_1,2,0xffff81ec,0xffff81dc,0x112f);
  3640.         }
  3641.         uVar5 = FUN_80022a08(param_1);
  3642.         iVar3 = FUN_80024460(uVar5,2);
  3643.         if (iVar3 != 0) {
  3644.           _DAT_ffff8b20 = 0;
  3645.           FUN_80024da4(param_1,0x23);
  3646.           return 1;
  3647.         }
  3648.         iVar3 = FUN_80064ea4(param_1,param_2);
  3649.         if (iVar3 == 1) {
  3650.           _DAT_ffff8b20 = 0;
  3651.           return 1;
  3652.         }
  3653.         if ((0 < *(int *)(param_2 + 0x34)) && (iVar3 = FUN_80063e90(param_1,param_2), iVar3 != 0)) {
  3654.           _DAT_ffff8b20 = 0;
  3655.           return 1;
  3656.         }
  3657.         iVar3 = FUN_800240d4(param_1,1);
  3658.         if (iVar3 != 0) {
  3659.           _DAT_ffff8b30 = 0;
  3660.           return 1;
  3661.         }
  3662.         if ((3 < _DAT_ffff8b30) && (*(int *)(param_2 + 0xbc) == 0)) {
  3663.           _DAT_ffff8b20 = 0;
  3664.           change_action(param_1,5,0xffff81f4,0xffff81dc,0x114e);
  3665.           *(undefined4 *)(param_2 + 0x44) = 0;
  3666.           *(undefined4 *)(param_2 + 0x40) = 0;
  3667.           FUN_800647b4(param_1,param_2);
  3668.           _DAT_ffff8b30 = 0;
  3669.           return 1;
  3670.         }
  3671.         _DAT_ffff8b30 = _DAT_ffff8b30 + 1;
  3672.         return 1;
  3673.       }
  3674.       if (iVar3 != 1) {
  3675.         if (iVar3 != 0) {
  3676.           return 1;
  3677.         }
  3678.         if (*(int *)(param_2 + 0x5c) == 0) {
  3679.           puVar12 = *(uint **)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18);
  3680.           *puVar12 = *puVar12 & 0xfffffbff;
  3681.           *(undefined4 *)(param_2 + 0xd8) = 0;
  3682.           *(undefined4 *)(param_2 + 0xa4) = 0;
  3683.           *(undefined4 *)(param_2 + 0xa8) = 0;
  3684.           *(undefined4 *)(param_2 + 0xac) = 0;
  3685.           if (*(int *)(param_2 + 0x5c) == 0) {
  3686.             if ((*(short *)(param_2 + 0xd4) == 0) ||
  3687.                (((iVar3 = FUN_800240d4(param_1,1), iVar3 != 0 ||
  3688.                  (iVar3 = FUN_80023a8c(2), iVar3 != 0)) && (*(short *)(param_2 + 0xd4) != 8)))) {
  3689.               FUN_80064058(param_1,param_2);
  3690.               change_action(param_1,0,0xffff81e4,0xffff81dc,0xe7c);
  3691.               *(undefined4 *)(param_2 + 0x60) = 1;
  3692.               *(undefined4 *)(param_2 + 0x100) = 0;
  3693.               _DAT_ffff8b30 = 0;
  3694.               return 1;
  3695.             }
  3696.             if (*(short *)(param_2 + 0xd4) == 1) {
  3697.               FUN_800647b4(param_1,param_2);
  3698.               *(undefined4 *)(param_2 + 0x60) = 1;
  3699.               _DAT_ffff8b30 = 0;
  3700.               return 1;
  3701.             }
  3702.             if (*(short *)(param_2 + 0xd4) == 6) {
  3703.               change_action(param_1,5,0xffff81f4,0xffff81dc,0xe90);
  3704.               change_action(param_1,0x14,"JAC_HeliCycle",0xffff81dc,0xe91);
  3705.               FUN_8003e044();
  3706.               FUN_80063fbc(param_1,param_2);
  3707.               *(undefined4 *)(param_2 + 0x60) = 1;
  3708.               _DAT_ffff8b30 = 0;
  3709.               return 1;
  3710.             }
  3711.           }
  3712.           *(undefined4 *)(param_2 + 0x44) = 0;
  3713.           *(undefined4 *)(param_2 + 0x100) = 0;
  3714.           if (*(short *)(param_2 + 0xd4) == 8) {
  3715.             FUN_8009a918();
  3716.             *(undefined2 *)(param_2 + 0xd4) = 8;
  3717.             *(undefined4 *)(param_2 + 0x38) = 7;
  3718.             change_action(param_1,0x38,"BNT_NageAttente",0xffff81dc,0xec2);
  3719.             *(undefined4 *)(param_2 + 0x124) = 0;
  3720.             *(undefined2 *)(param_2 + 0x128) = 0;
  3721.             FUN_80024da4(param_1,9);
  3722.             FUN_80024dfc(param_1,1);
  3723.             FUN_8002646c(param_1,0);
  3724.             *(undefined4 *)(param_2 + 0x60) = 1;
  3725.             FUN_8002643c(param_1,0);
  3726.             puVar12 = *(uint **)(*(int *)(_DAT_ffff88c0 + 0x118) + *(int *)(param_1 + 4) * 0x18);
  3727.             *puVar12 = *puVar12 | 0x400;
  3728.             return 1;
  3729.           }
  3730.           *(undefined4 *)(param_2 + 0x60) = 0;
  3731.           FUN_8002643c(param_1,1);
  3732.           return 1;
  3733.         }
  3734.         FUN_8002447c(param_1);
  3735.         FUN_8004eac4(param_2,auStack704);
  3736.         FUN_800445a0(auStack704);
  3737.         FUN_800256c8(param_1,0);
  3738.         FUN_800256d4(param_1,0);
  3739.         FUN_800256e0(param_1,0);
  3740.         *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  3741.         if (*(short *)(param_2 + 0xc4) == 1) {
  3742.           FUN_80073364(param_1,0x24,"PLAY_NAIMAGIC",0xffff81dc,0xe20);
  3743.         }
  3744.         if ((10 < *(short *)(param_2 + 0xc4)) && (*(short *)(param_2 + 0xc4) < 0xf)) {
  3745.           iVar3 = *(int *)(param_1 + 0x20);
  3746.           FUN_800968f8(2,10,0xe,0x24,2,*(undefined4 *)(iVar3 + 0x14),*(undefined4 *)(iVar3 + 0x18),
  3747.                        *(undefined4 *)(iVar3 + 0x1c));
  3748.         }
  3749.         if (0x12 < *(short *)(param_2 + 0xc4)) {
  3750.           iVar3 = *(int *)(param_1 + 0x20);
  3751.           FUN_80096aa4(0xe,0x26,2,*(undefined4 *)(iVar3 + 0x14),*(undefined4 *)(iVar3 + 0x18),
  3752.                        *(undefined4 *)(iVar3 + 0x1c),20000,20000,200000,5);
  3753.         }
  3754.         _DAT_ffff8ab4 = _DAT_ffff8ab4 + 0xcc;
  3755.         if (0xfff < _DAT_ffff8ab4) {
  3756.           _DAT_ffff8ab4 = 0x1000;
  3757.         }
  3758.         FUN_80025704(param_1,0x4cc);
  3759.         FUN_80026f9c(param_1,_DAT_ffff8ab4,_DAT_ffff8ab4);
  3760.         FUN_80022930(param_1,&DAT_800b988c);
  3761.         iVar3 = param_2 + 0x10;
  3762.         DAT_800b9894 = 0;
  3763.         FUN_8004db84(auStack720,iVar3);
  3764.         local_2c8 = 0;
  3765.         if (_DAT_ffff8ab4 < 0x1000) {
  3766.           return 1;
  3767.         }
  3768.         iVar4 = FUN_8004d870(&DAT_800b988c,auStack720);
  3769.         if (iVar4 < 0xe67) {
  3770.           return 1;
  3771.         }
  3772.         thunk_FUN_80051ce0(param_1,iVar3);
  3773.         thunk_FUN_8005209c(param_1,iVar3);
  3774.         _DAT_ffff8ab4 = 0x1000;
  3775.         FUN_80026f9c(param_1,0x1000,0x1000);
  3776.         *(undefined4 *)(param_2 + 0x5c) = 0;
  3777.         *(undefined2 *)(param_2 + 0xc4) = 0;
  3778.         _DAT_ffff8ab4 = 0;
  3779.         if (*(short *)(param_2 + 0xd4) == 8) {
  3780.           _DAT_ffff8ab4 = 0;
  3781.           return 1;
  3782.         }
  3783.         if (*(short *)(param_2 + 0xd4) == 6) {
  3784.           _DAT_ffff8ab4 = 0;
  3785.           return 1;
  3786.         }
  3787.         *(undefined4 *)(param_2 + 0x40) = 1;
  3788.         FUN_800256e0(param_1,0xa000);
  3789.         change_action(param_1,0x59,"YLT_SautMontee2",0xffff81dc,0xe51);
  3790.         FUN_800647b4(param_1,param_2);
  3791.         *(undefined4 *)(param_2 + 0x60) = 1;
  3792.         _DAT_ffff8b30 = 0;
  3793.         return 1;
  3794.       }
  3795.       FUN_80062378(param_1,param_2);
  3796.       *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  3797.       *(undefined4 *)(param_2 + 0x38) = 2;
  3798.       FUN_8002643c(param_1,1);
  3799.       FUN_80026454(param_1,0);
  3800.       FUN_800226d8(param_1,param_2 + 0x10c);
  3801.       iVar4 = param_2 + 0xa4;
  3802.       iVar3 = FUN_80024afc(iVar4);
  3803.       if (iVar3 == 0) {
  3804.         FUN_8004d948(iVar4);
  3805.         if ((*(int *)(param_2 + 0x34) == 0) && (*(int *)(param_2 + 0x30) == 0)) {
  3806.           FUN_80025350(param_1,iVar4);
  3807.         }
  3808.         else {
  3809.           *(undefined4 *)(param_2 + 0x34) = 0;
  3810.           FUN_80063038(param_2,auStack688);
  3811.           local_2a8 = 0;
  3812.           uVar5 = FUN_8004d948(iVar4);
  3813.           if (_DAT_ffff8afc < 0x33) {
  3814.             FUN_8004d8e0(auStack688,auStack688,0xf000);
  3815.           }
  3816.           else {
  3817.             if (_DAT_ffff8b04 < 1) {
  3818.               uVar16 = FUN_8002047c(_DAT_ffff8b04 + 0x32);
  3819.               uVar16 = FUN_800211f0(0x9999999a,0x3fc99999,(int)((ulonglong)uVar16 >> 0x20),
  3820.                                     (int)uVar16);
  3821.               uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3822.               iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3823.             }
  3824.             else {
  3825.               uVar16 = FUN_8002047c(_DAT_ffff8b04 + -0x32);
  3826.               uVar16 = FUN_800211f0(0x9999999a,0x3fc99999,(int)((ulonglong)uVar16 >> 0x20),
  3827.                                     (int)uVar16);
  3828.               uVar16 = FUN_800211f0(0,0x40b00000,(int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3829.               iVar3 = func_0x800206dc((int)((ulonglong)uVar16 >> 0x20),(int)uVar16);
  3830.             }
  3831.             if (iVar3 < 0) {
  3832.               iVar3 = -iVar3;
  3833.             }
  3834.             FUN_8004d8e0(auStack688,auStack688,iVar3);
  3835.           }
  3836.           FUN_8004dca8(auStack688,auStack688,iVar4);
  3837.           FUN_8004db84(auStack688);
  3838.           FUN_8004d8e0(auStack688,auStack688,uVar5);
  3839.           FUN_80025350(param_1,auStack688);
  3840.         }
  3841.       }
  3842.       if (*(int *)(param_2 + 0x114) < -0x64000) {
  3843.         FUN_80024da4(param_1,0x2b);
  3844.         *(undefined4 *)(param_2 + 0x44) = 0;
  3845.         return 1;
  3846.       }
  3847.       iVar3 = FUN_8002326c(2);
  3848.       if (iVar3 != 0) {
  3849.         _DAT_ffff8b58 = 1;
  3850.       }
  3851.       iVar3 = FUN_8002326c(2);
  3852.       if ((((iVar3 != 0) && (*(int *)(param_2 + 0x58) == 1)) || (_DAT_ffff8b58 != 0)) &&
  3853.          (*(int *)(param_2 + 0x114) < 0x5000)) {
  3854.         _DAT_ffff8b58 = 0;
  3855.         iVar3 = FUN_80024afc(iVar4);
  3856.         if (iVar3 != 0) {
  3857.           if (*(int *)(param_2 + 0xdc) != 1) {
  3858.             FUN_80063fc4(param_1,param_2);
  3859.             *(undefined4 *)(param_2 + 0xbc) = 0;
  3860.             return 1;
  3861.           }
  3862.           FUN_80063fbc(param_1,param_2);
  3863.           return 1;
  3864.         }
  3865.       }
  3866.       iVar3 = FUN_80065098(param_1,param_2);
  3867.       if (iVar3 != 0) {
  3868.         return 1;
  3869.       }
  3870.       FUN_80066e04(param_1,param_2);
  3871.       if ((*(int *)(param_2 + 0x114) < 0x9000) && (*(int *)(param_2 + 0x13c) == 0)) {
  3872.         FUN_80064724(param_1,param_2);
  3873.       }
  3874.       if (*(int *)(param_2 + 0x114) < 0) {
  3875.         _DAT_ffff8b38 = 0;
  3876.         *(undefined4 *)(param_2 + 200) = 0;
  3877.       }
  3878.       FUN_800655e0(param_1,param_2);
  3879.       iVar3 = FUN_80064b1c(param_1,param_2);
  3880.       if (iVar3 != 0) {
  3881.         return 1;
  3882.       }
  3883.       iVar3 = FUN_800240d4(param_1,3);
  3884.       if (iVar3 == 0) {
  3885.         iVar3 = FUN_800240d4(param_1,1);
  3886.         if (iVar3 != 0) {
  3887.           uVar5 = FUN_80022a08(param_1);
  3888.           iVar3 = FUN_80024460(uVar5,0x10);
  3889.           if (iVar3 != 0) {
  3890.             FUN_80062834(param_1,param_2);
  3891.           }
  3892.         }
  3893.         iVar3 = FUN_800240d4(param_1,1);
  3894.         if ((iVar3 != 0) &&
  3895.            (((-0x1e < _DAT_ffff8880 || (iVar3 = FUN_80024344(param_1,8), iVar3 == 0)) &&
  3896.             (3 < *(int *)(param_2 + 0x44))))) {
  3897.           uVar5 = FUN_80022a08(param_1);
  3898.           iVar3 = FUN_80024460(uVar5,2);
  3899.           if (iVar3 != 0) {
  3900.             FUN_80024da4(param_1,0x23);
  3901.             return 1;
  3902.           }
  3903.           iVar3 = FUN_80064ea4(param_1,param_2);
  3904.           if (iVar3 == 1) {
  3905.             return 1;
  3906.           }
  3907.           iVar3 = FUN_80024afc(param_2 + 0x74);
  3908.           if (iVar3 == 0) {
  3909.             iVar3 = FUN_80023a8c(0);
  3910.             if (((iVar3 == 0) && (iVar3 = FUN_80062b1c(), iVar3 == 0)) &&
  3911.                (iVar3 = FUN_80024a48(param_1,0x1e), iVar3 == 0)) {
  3912.               FUN_800642a8(param_1,param_2);
  3913.               *(undefined4 *)(param_2 + 0x44) = 0xd;
  3914.               if (*(int *)(param_2 + 0x40) == 1) {
  3915.                 _DAT_ffff8b20 = 0xffff6000;
  3916.                 return 1;
  3917.               }
  3918.               _DAT_ffff8b20 = 0xffffa000;
  3919.               return 1;
  3920.             }
  3921.             FUN_80064210(param_1,param_2);
  3922.             return 1;
  3923.           }
  3924.           iVar3 = FUN_80024b78(param_1,0x5d);
  3925.           if (iVar3 == 0) {
  3926.             FUN_80026e54(param_1,0);
  3927.             FUN_80026e48(param_1,0);
  3928.             FUN_80064058(param_1,param_2);
  3929.             *(undefined4 *)(param_2 + 0x44) = 0;
  3930.             *(undefined2 *)(param_2 + 0xc4) = 0xf;
  3931.             *(undefined4 *)(param_2 + 100) = 1;
  3932.             return 1;
  3933.           }
  3934.           iVar10 = param_2 + 0x170;
  3935.           FUN_80022e44(param_1,iVar10);
  3936.           iVar3 = FUN_80024afc(iVar10);
  3937.           if (iVar3 == 0) {
  3938.             FUN_8004db84(iVar10,iVar10);
  3939.             FUN_8004d8e0(iVar10,iVar10,0xa000);
  3940.             FUN_8002535c(param_1,iVar10);
  3941.           }
  3942.         }
  3943.         if ((_DAT_ffff8b38 == 0) && (iVar3 = FUN_80064d40(param_1,param_2), iVar3 != 0)) {
  3944.           return 1;
  3945.         }
  3946.         iVar3 = FUN_80023a8c(4);
  3947.         if ((iVar3 == 0) && (iVar3 = FUN_80063e90(param_1,param_2), iVar3 != 0)) {
  3948.           return 1;
  3949.         }
  3950.       }
  3951.       iVar3 = FUN_80024afc(param_2 + 0x74);
  3952.       if (iVar3 == 0) {
  3953.         iVar3 = FUN_80023a8c(0xc);
  3954.         if ((iVar3 == 0) || (iVar3 = FUN_80024afc(iVar4), iVar3 == 0)) {
  3955.           iVar3 = FUN_80024afc(iVar4);
  3956.           if (iVar3 == 0) {
  3957.             iVar3 = FUN_800631e8(param_1,param_2);
  3958.             if (iVar3 == 1) {
  3959.               FUN_80025704(param_1,(*(int *)(param_2 + 0x50) << 6) / 0x120);
  3960.             }
  3961.           }
  3962.           else {
  3963.             FUN_80065dec(param_1,param_2);
  3964.             iVar3 = FUN_800240d4(param_1,2);
  3965.             if (iVar3 == 0) {
  3966.               FUN_80063454(param_1,param_2);
  3967.               iVar3 = *(int *)(param_2 + 200);
  3968.               goto LAB_800687c8;
  3969.             }
  3970.             puVar8 = (undefined4 *)FUN_80022f28(param_1,2);
  3971.             DAT_800b988c = *puVar8;
  3972.             DAT_800b9890 = puVar8[1];
  3973.             DAT_800b9894 = puVar8[2];
  3974.             DAT_800b9898 = puVar8[3];
  3975.             FUN_80022930(param_1,auStack672);
  3976.             iVar3 = FUN_8004d870(auStack672,&DAT_800b988c);
  3977.             if (-0x800 < iVar3) {
  3978.               FUN_80063454(param_1,param_2);
  3979.               iVar3 = *(int *)(param_2 + 200);
  3980.               goto LAB_800687c8;
  3981.             }
  3982.           }
  3983.         }
  3984.         else {
  3985.           iVar3 = FUN_80023a8c(0xc);
  3986.           if ((iVar3 != 0) && (iVar3 = FUN_800240d4(param_1,2), iVar3 == 0)) {
  3987.             FUN_80063408(param_1,param_2);
  3988.             iVar3 = *(int *)(param_2 + 200);
  3989.             goto LAB_800687c8;
  3990.           }
  3991.         }
  3992.       }
  3993.       iVar3 = *(int *)(param_2 + 200);
  3994. LAB_800687c8:
  3995.       if (iVar3 == 1) {
  3996.         FUN_800256d4(param_1,0xffff8000);
  3997.       }
  3998.       iVar3 = FUN_80024afc(param_2 + 0x74);
  3999.       if ((iVar3 != 0) && (iVar3 = FUN_80024afc(iVar4), iVar3 == 0)) {
  4000.         FUN_80022930(param_1,auStack640);
  4001.         local_290 = *(undefined4 *)(param_2 + 0x10c);
  4002.         local_28c = *(undefined4 *)(param_2 + 0x110);
  4003.         local_284 = *(undefined4 *)(param_2 + 0x118);
  4004.         local_288 = 0;
  4005.         FUN_8004db84(&local_290);
  4006.         uVar5 = FUN_800223d4(auStack640,0xccc,&local_290);
  4007.         thunk_FUN_80051ce0(param_1,uVar5);
  4008.       }
  4009.       iVar3 = FUN_800240d4(param_1,2);
  4010.       if ((iVar3 != 0) && (iVar3 = FUN_80024afc(iVar4), iVar3 == 0)) {
  4011.         FUN_80025350(param_1,iVar4);
  4012.       }
  4013.       FUN_800673f4(param_1,param_2,9);
  4014.       return 1;
  4015.     }
  4016.     uVar5 = FUN_80022a08(param_1);
  4017.     iVar3 = FUN_80024460(uVar5,0x200);
  4018.     if (iVar3 != 0) {
  4019.       _DAT_ffff8b1c = 1;
  4020.     }
  4021.     uVar5 = FUN_80022a08(param_1);
  4022.     iVar3 = FUN_80024460(uVar5,1);
  4023.     if (iVar3 != 0) {
  4024.       _DAT_ffff8b1c = 2;
  4025.     }
  4026.     *(undefined4 *)(param_2 + 0x38) = 6;
  4027.     FUN_80044710(4);
  4028.     local_2e8 = 0;
  4029.     local_2ec = 0;
  4030.     local_2f0 = 0;
  4031.     FUN_80062378(param_1,param_2);
  4032.     iVar3 = FUN_800231c4();
  4033.     if (iVar3 < 0) {
  4034.       iVar3 = FUN_800231c4();
  4035.       iVar3 = -iVar3;
  4036.     }
  4037.     else {
  4038.       iVar3 = FUN_800231c4();
  4039.     }
  4040.     iVar4 = FUN_80023234();
  4041.     if (iVar4 < 0) {
  4042.       iVar4 = FUN_80023234();
  4043.       iVar4 = -iVar4;
  4044.     }
  4045.     else {
  4046.       iVar4 = FUN_80023234();
  4047.     }
  4048.     iVar10 = _DAT_ffff8acc;
  4049.     if (_DAT_ffff8b54 == 1) {
  4050.       iVar6 = FUN_80066220(param_1,param_2);
  4051.       if (iVar10 == iVar6) {
  4052.         change_action(param_1,0x27,"CHG_VarappeAttente",0xffff81dc,0x1814);
  4053.         goto LAB_8006c608;
  4054.       }
  4055.       _DAT_ffff8200 = -1;
  4056.       _DAT_ffff820c = -1;
  4057.       _DAT_ffff8208 = -1;
  4058.       _DAT_ffff8b54 = 0;
  4059.       _DAT_ffff8204 = 0;
  4060.       _DAT_ffff8b50 = 0;
  4061.       _DAT_ffff81fc = 1;
  4062.     }
  4063.     else {
  4064.       _DAT_ffff8acc = 0;
  4065.     }
  4066.     if ((_DAT_ffff8b50 == 0) ||
  4067.        ((iVar10 = FUN_80024afc(param_2 + 0x74), iVar10 == 0 && (_DAT_ffff8b50 == 0)))) {
  4068.       iVar10 = FUN_80024a9c(param_1,0x4b);
  4069.       if (iVar10 == 0) {
  4070.         _DAT_ffff8b50 = 0;
  4071.         _DAT_ffff8200 = -1;
  4072.         _DAT_ffff820c = -1;
  4073.         _DAT_ffff8208 = -1;
  4074.       }
  4075.       else {
  4076.         _DAT_ffff8b50 = 1;
  4077.         _DAT_ffff81fc = 1;
  4078.         _DAT_ffff8204 = 0;
  4079.         _DAT_ffff8200 = -1;
  4080.         _DAT_ffff820c = -1;
  4081.         _DAT_ffff8208 = -1;
  4082.       }
  4083.     }
  4084.     else {
  4085.       iVar10 = FUN_80024a9c(param_1,0x4b);
  4086.       if (iVar10 == 0) {
  4087.         _DAT_ffff8204 = 0;
  4088.       }
  4089.       else {
  4090.         _DAT_ffff8204 = 1;
  4091.       }
  4092.     }
  4093.     iVar10 = FUN_80024afc(param_2 + 0x74);
  4094.     if (iVar10 == 0) {
  4095.       *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  4096.       if (*(int *)(param_2 + 0x44) < 10) {
  4097.         _DAT_ffff8b18 = 10 - *(int *)(param_2 + 0x44);
  4098.       }
  4099.       else {
  4100.         _DAT_ffff8b18 = 3;
  4101.       }
  4102.       *(undefined2 *)(param_2 + 0xc4) = 0;
  4103.     }
  4104.     else {
  4105.       *(undefined4 *)(param_2 + 0x44) = 0;
  4106.     }
  4107.     iVar10 = FUN_80024afc(param_2 + 0x74);
  4108.     if ((iVar10 == 0) && (-1 < *(int *)(param_2 + 0x48))) {
  4109.       if (_DAT_ffff8b50 == 0) {
  4110.         FUN_800629cc(param_1);
  4111.         iVar10 = FUN_80066104(param_1,param_2);
  4112.         if (iVar10 == 0) {
  4113.           if (((iVar4 < iVar3) && (0x32 < iVar3)) ||
  4114.              ((*(int *)(param_2 + 0x30) != 0 && (*(int *)(param_2 + 0x34) == 0)))) {
  4115.             FUN_80067500(param_1,param_2,&local_2f0);
  4116.           }
  4117.           else {
  4118.             FUN_80067720(param_1,param_2,&local_2f0);
  4119.           }
  4120.         }
  4121.         else {
  4122.           FUN_80067500(param_1,param_2,&local_2f0);
  4123.           FUN_80067720(param_1,param_2,&local_2f0);
  4124.         }
  4125.       }
  4126.       else {
  4127.         iVar10 = FUN_80066104(param_1,param_2);
  4128.         if (iVar10 == 0) {
  4129.           if (_DAT_ffff8200 == 1) {
  4130.             _DAT_ffff820c = -1;
  4131.             _DAT_ffff8208 = -1;
  4132.             _DAT_ffff8204 = 0;
  4133.             _DAT_ffff8b54 = 0;
  4134.           }
  4135.           _DAT_ffff8200 = 0;
  4136.           if (((*(int *)(param_2 + 0x30) == 0) || (iVar10 = FUN_80023a8c(1), iVar10 == 0)) &&
  4137.              ((iVar10 = FUN_80023a8c(1), iVar10 != 0 || (iVar3 <= iVar4)))) {
  4138.             if (*(int *)(param_2 + 0x34) < 1) {
  4139.               FUN_80062914(param_1,2);
  4140.               iVar3 = *(int *)(param_2 + 0x34);
  4141.             }
  4142.             else {
  4143.               FUN_80062914(param_1,1);
  4144.               iVar3 = *(int *)(param_2 + 0x34);
  4145.             }
  4146.             if (iVar3 < 1) {
  4147.               if (iVar3 < 0) {
  4148.                 local_2e8 = -0x6000;
  4149.               }
  4150.             }
  4151.             else {
  4152.               local_2e8 = 0x6000;
  4153.             }
  4154.             if (_DAT_ffff81fc == 1) {
  4155.               FUN_80062914(param_1,3);
  4156.               local_2f0 = 0x6000;
  4157.             }
  4158.             else {
  4159.               FUN_80062914(param_1,4);
  4160.               local_2f0 = 0xffffa000;
  4161.             }
  4162.           }
  4163.           else {
  4164.             if (*(int *)(param_2 + 0x30) < 1) {
  4165.               FUN_80062914(param_1,3);
  4166.               iVar3 = *(int *)(param_2 + 0x30);
  4167.             }
  4168.             else {
  4169.               FUN_80062914(param_1,4);
  4170.               iVar3 = *(int *)(param_2 + 0x30);
  4171.             }
  4172.             if (iVar3 < 1) {
  4173.               if (iVar3 < 0) {
  4174.                 local_2f0 = 0x6000;
  4175.               }
  4176.             }
  4177.             else {
  4178.               local_2f0 = 0xffffa000;
  4179.             }
  4180.             if (_DAT_ffff81fc == 1) {
  4181.               FUN_80062914(param_1,1);
  4182.               local_2e8 = 0x6000;
  4183.             }
  4184.             else {
  4185.               FUN_80062914(param_1,2);
  4186.               local_2e8 = -0x6000;
  4187.             }
  4188.           }
  4189.         }
  4190.         else {
  4191.           if (((iVar4 < iVar3) && (0x32 < iVar3)) ||
  4192.              ((*(int *)(param_2 + 0x30) != 0 && (*(int *)(param_2 + 0x34) == 0)))) {
  4193.             if (*(int *)(param_2 + 0x30) < 1) {
  4194.               if (*(int *)(param_2 + 0x30) < 0) {
  4195.                 *(undefined4 *)(param_2 + 0x48) = 0x2a;
  4196.               }
  4197.             }
  4198.             else {
  4199.               *(undefined4 *)(param_2 + 0x48) = 0x2b;
  4200.             }
  4201.           }
  4202.           else {
  4203.             if (*(int *)(param_2 + 0x34) < 1) {
  4204.               if (*(int *)(param_2 + 0x34) < 0) {
  4205.                 *(undefined4 *)(param_2 + 0x48) = 0x29;
  4206.               }
  4207.             }
  4208.             else {
  4209.               *(undefined4 *)(param_2 + 0x48) = 0x28;
  4210.             }
  4211.           }
  4212.           FUN_800629cc(param_1);
  4213.           if (_DAT_ffff8200 == 0) {
  4214.             _DAT_ffff8b54 = 0;
  4215.             _DAT_ffff8204 = 0;
  4216.             _DAT_ffff820c = -1;
  4217.             _DAT_ffff8208 = -1;
  4218.           }
  4219.           _DAT_ffff8200 = 1;
  4220.           if (_DAT_ffff81fc == 1) {
  4221.             if (0 < *(int *)(param_2 + 0x30)) {
  4222.               local_2f0 = 0xffff6000;
  4223.               FUN_80062914(param_1,4);
  4224.             }
  4225.             if (*(int *)(param_2 + 0x30) < 0) {
  4226.               local_2f0 = 0xa000;
  4227.               FUN_80062914(param_1,3);
  4228.             }
  4229.           }
  4230.           else {
  4231.             if (0 < *(int *)(param_2 + 0x34)) {
  4232.               local_2e8 = 0xa000;
  4233.               FUN_80062914(param_1);
  4234.             }
  4235.             if (*(int *)(param_2 + 0x34) < 0) {
  4236.               local_2e8 = -0xa000;
  4237.               FUN_80062914(param_1,2);
  4238.             }
  4239.           }
  4240.         }
  4241.         if (_DAT_ffff8204 == 0) {
  4242.           if (_DAT_ffff81fc == 1) {
  4243.             _DAT_ffff8208 = 0;
  4244.           }
  4245.           else {
  4246.             _DAT_ffff820c = 0;
  4247.           }
  4248.           if ((_DAT_ffff8208 == 0) && (_DAT_ffff820c == 0)) {
  4249.             _DAT_ffff8b50 = 0;
  4250.           }
  4251.         }
  4252.         else {
  4253.           if (_DAT_ffff81fc == 1) {
  4254.             _DAT_ffff8208 = 1;
  4255.           }
  4256.           else {
  4257.             _DAT_ffff820c = 1;
  4258.           }
  4259.           if ((_DAT_ffff8208 == 1) && (_DAT_ffff820c == 1)) {
  4260.             _DAT_ffff8b54 = 1;
  4261.             _DAT_ffff8acc = FUN_80066220(param_1,param_2);
  4262.             goto LAB_8006c608;
  4263.           }
  4264.         }
  4265.         _DAT_ffff81fc = -_DAT_ffff81fc;
  4266.       }
  4267.     }
  4268. LAB_8006c608:
  4269.     iVar4 = param_2 + 0x74;
  4270.     iVar3 = FUN_80024afc(iVar4);
  4271.     if (iVar3 != 0) {
  4272.       _DAT_ffff8200 = -1;
  4273.       _DAT_ffff820c = -1;
  4274.       _DAT_ffff8208 = -1;
  4275.       _DAT_ffff8b50 = 0;
  4276.       _DAT_ffff8204 = 0;
  4277.       _DAT_ffff8acc = 0;
  4278.       _DAT_ffff8b54 = 0;
  4279.       FUN_80026e54(param_1,0);
  4280.       FUN_80026e60(param_1,0);
  4281.     }
  4282.     if (_DAT_ffff8b18 < *(short *)(param_2 + 0xc4)) {
  4283.       iVar3 = FUN_80024afc(iVar4);
  4284.       if (iVar3 != 0) {
  4285.         local_170 = 0;
  4286.         local_16c = 0;
  4287.         local_168 = 0;
  4288.         change_action(param_1,0x27,"CHG_VarappeAttente",0xffff81dc,0x1958);
  4289.         FUN_80025344(param_1,&local_170);
  4290.         _DAT_ffff8b50 = 0;
  4291.         _DAT_ffff8204 = 0;
  4292.         _DAT_ffff8acc = 0;
  4293.         *(undefined2 *)(param_2 + 0xc4) = 0;
  4294.         _DAT_ffff8b54 = 0;
  4295.         _DAT_ffff820c = -1;
  4296.         _DAT_ffff8208 = -1;
  4297.         _DAT_ffff8200 = -1;
  4298.       }
  4299.     }
  4300.     else {
  4301.       *(short *)(param_2 + 0xc4) = *(short *)(param_2 + 0xc4) + 1;
  4302.     }
  4303.     iVar3 = FUN_80024afc(&local_2f0);
  4304.     if (iVar3 == 0) {
  4305.       change_action(param_1,*(undefined4 *)(param_2 + 0x48),"g_AI_Variables->Last_Action",0xffff81dc
  4306.                     ,0x196a);
  4307.       iVar3 = FUN_8004d948(&local_2f0);
  4308.       if ((0x6000 < iVar3) && (_DAT_ffff8b50 == 0)) {
  4309.         FUN_8004db84(&local_2f0);
  4310.         FUN_8004d8e0(&local_2f0,&local_2f0,0x6000);
  4311.       }
  4312.       FUN_80026e54(param_1,local_2f0);
  4313.       FUN_80026e60(param_1,local_2e8);
  4314.     }
  4315.     iVar3 = FUN_800240d4(param_1,4);
  4316.     if ((iVar3 != 0) && (0 < local_2e8)) {
  4317.       FUN_80026e60(param_1,0);
  4318.     }
  4319.     iVar3 = FUN_800240d4(param_1,1);
  4320.     if ((iVar3 != 0) && ((*(int *)(param_2 + 0x34) < 1 || (iVar3 = FUN_80023a8c(4), iVar3 != 0)))) {
  4321.       _DAT_ffff8204 = 0;
  4322.       FUN_800629cc(param_1);
  4323.       _DAT_ffff8b38 = 0;
  4324.       FUN_800647b4(param_1,param_2);
  4325.       FUN_800258d4(param_1,0x1f,0);
  4326.       return 1;
  4327.     }
  4328.     iVar3 = FUN_80064d40(param_1,param_2);
  4329.     if (iVar3 == 1) {
  4330.       _DAT_ffff8204 = 0;
  4331.       FUN_800629cc(param_1);
  4332.       return 1;
  4333.     }
  4334.     if ((_DAT_ffff8b50 != 0) &&
  4335.        ((((_DAT_ffff8b1c == 1 && (0 < *(int *)(param_2 + 0x34))) ||
  4336.          ((_DAT_ffff8b1c == 2 && (*(int *)(param_2 + 0x30) != 0)))) &&
  4337.         (iVar3 = FUN_80024afc(iVar4), iVar3 == 0)))) {
  4338.       _DAT_ffff8204 = 0;
  4339.       _DAT_ffff8b50 = 0;
  4340.       FUN_800629cc(param_1);
  4341.       *(undefined4 *)(param_2 + 0x40) = 2;
  4342.       FUN_800258d4(param_1,0x1f,0);
  4343.       *(undefined4 *)(param_2 + 0x58) = 1;
  4344.       _DAT_ffff8b38 = 1;
  4345.       FUN_800648d4(param_1,param_2);
  4346.       change_action(param_1,4,"YLT_montee",0xffff81dc,0x199d);
  4347.       *(undefined4 *)(param_2 + 0xbc) = 0;
  4348.       return 1;
  4349.     }
  4350.     iVar3 = FUN_8002326c(2);
  4351.     if (iVar3 == 0) {
  4352.       return 1;
  4353.     }
  4354.     _DAT_ffff8204 = 0;
  4355.     _DAT_ffff8b50 = 0;
  4356.     FUN_800629cc(param_1);
  4357.     *(undefined4 *)(param_2 + 0x40) = 2;
  4358.     FUN_800258d4(param_1,0x1f,0);
  4359.     FUN_800647b4(param_1,param_2);
  4360.     change_action(param_1,4,"YLT_montee",0xffff81dc,0x19ab);
  4361.     *(undefined4 *)(param_2 + 0x58) = 1;
  4362.     FUN_800256d4(param_1,0x3000);
  4363.     FUN_800256e0(param_1,0x14000);
  4364.     _DAT_ffff8b38 = 1;
  4365.     return 1;
  4366.   }
  4367.   FUN_80062378(param_1,param_2);
  4368.   *(undefined4 *)(param_2 + 0x38) = 8;
  4369.   *(int *)(param_2 + 0x44) = *(int *)(param_2 + 0x44) + 1;
  4370.   _DAT_ffff8b5c = _DAT_ffff8b5c + 1;
  4371.   if ((*(int *)(param_2 + 0x50) < 0xcc) && (iVar3 = FUN_80024afc(param_2 + 0x74), iVar3 == 0)) {
  4372.     _DAT_ffff8adc = _DAT_ffff8adc + 1;
  4373.     if (10 < _DAT_ffff8adc) {
  4374.       FUN_8002214c(param_1,&DAT_800b986c);
  4375.       iVar3 = FUN_80072ca0(&DAT_800b985c,&DAT_800b986c);
  4376.       if (iVar3 < 0x3c000) {
  4377.         FUN_80022930(param_1,param_2 + 0x170);
  4378.         DAT_800b9864 = 0;
  4379.         DAT_800b9860 = 0;
  4380.         DAT_800b985c = 0;
  4381.         DAT_800b9874 = 0;
  4382.         DAT_800b9870 = 0;
  4383.         _DAT_ffff8ab0 = 0;
  4384.         _DAT_ffff8b54 = 1;
  4385.         _DAT_ffff8ae0 = 0;
  4386.         _DAT_ffff8ae4 = 0;
  4387.         DAT_800b986c = 0;
  4388.       }
  4389.       else {
  4390.         _DAT_ffff8adc = 0;
  4391.       }
  4392.     }
  4393.   }
  4394.   else {
  4395.     DAT_800b9864 = 0;
  4396.     DAT_800b9860 = 0;
  4397.     DAT_800b985c = 0;
  4398.     DAT_800b9874 = 0;
  4399.     DAT_800b9870 = 0;
  4400.     DAT_800b986c = 0;
  4401.     _DAT_ffff8adc = 0;
  4402.   }
  4403.   if (_DAT_ffff8b54 == 1) {
  4404.     FUN_80025704(param_1,*(undefined4 *)(param_2 + 0x50));
  4405.     FUN_80022930(param_1,&DAT_800b988c);
  4406.     iVar3 = FUN_8004d870(&DAT_800b988c,param_2 + 0x170);
  4407.     if (0xd99 < iVar3) {
  4408.       change_action(param_1,0xb,"JAC_SusAttente",0xffff81dc,0x19eb);
  4409.       iVar3 = *(int *)(param_2 + 0x4c);
  4410.       goto LAB_8006cde4;
  4411.     }
  4412.     _DAT_ffff8ab0 = 0;
  4413.     change_action(param_1,10,"JAC_SusMarche",0xffff81dc,0x19f0);
  4414.     _DAT_ffff8b54 = 0;
  4415.     _DAT_ffff8b50 = 0;
  4416.     _DAT_ffff8210 = -1;
  4417.   }
  4418.   iVar3 = FUN_80024afc(param_2 + 0x74);
  4419.   if (iVar3 == 0) {
  4420.     iVar3 = FUN_80024a9c(param_1,0x4b);
  4421.     if (iVar3 == 0) {
  4422.       _DAT_ffff8ae0 = 0;
  4423.       _DAT_ffff8b50 = 0;
  4424.       _DAT_ffff8ab0 = 0;
  4425.       _DAT_ffff8ad8 = 0;
  4426.       _DAT_ffff8ad4 = 0;
  4427.       if (_DAT_ffff8ad0 != 0) {
  4428.         _DAT_ffff8210 = _DAT_ffff8ad0;
  4429.       }
  4430.       goto LAB_8006cc7c;
  4431.     }
  4432.     if (_DAT_ffff8ae0 == 0) {
  4433.       if (_DAT_ffff8ad0 == 1) {
  4434.         _DAT_ffff8ad8 = _DAT_ffff8ad8 + 1;
  4435.       }
  4436.       if (_DAT_ffff8ad0 == -1) {
  4437.         _DAT_ffff8ad4 = _DAT_ffff8ad4 + 1;
  4438.       }
  4439.       if (_DAT_ffff8ae4 == 0) {
  4440.         _DAT_ffff8ae0 = 0;
  4441.         _DAT_ffff8b5c = 0;
  4442.         _DAT_ffff8b50 = 1;
  4443.       }
  4444.       else {
  4445.         _DAT_ffff8ae0 = 1;
  4446.         FUN_8002214c(param_1,&DAT_800b985c);
  4447.         _DAT_ffff8b50 = 0;
  4448.       }
  4449.       goto LAB_8006cc7c;
  4450.     }
  4451.     FUN_80022930(param_1,param_2 + 0x170);
  4452.     _DAT_ffff8ab0 = 0;
  4453.     _DAT_ffff8b54 = 1;
  4454.     _DAT_ffff8ae0 = 0;
  4455.     _DAT_ffff8ae4 = 0;
  4456.   }
  4457.   else {
  4458. LAB_8006cc7c:
  4459.     if (_DAT_ffff8b50 == 0) {
  4460.       FUN_80025704(param_1,*(undefined4 *)(param_2 + 0x50));
  4461.       if (_DAT_ffff8ae0 == 0) {
  4462.         if (_DAT_ffff8b5c < 5) {
  4463.           if (_DAT_ffff8ad0 == 1) {
  4464.             _DAT_ffff8ae4 = 1;
  4465.             FUN_80026e54(param_1,0xffffc000);
  4466.             iVar3 = *(int *)(param_2 + 0x4c);
  4467.             goto LAB_8006cde4;
  4468.           }
  4469.           if (_DAT_ffff8ad0 == -1) {
  4470.             _DAT_ffff8ae4 = 1;
  4471.             FUN_80026e54(param_1,0x4000);
  4472.             iVar3 = *(int *)(param_2 + 0x4c);
  4473.             goto LAB_8006cde4;
  4474.           }
  4475.           FUN_80026e48(param_1,0xffffc000);
  4476.           _DAT_ffff8ae4 = 0;
  4477.         }
  4478.         else {
  4479.           _DAT_ffff8ae4 = 0;
  4480.           FUN_80026e48(param_1,0xffffc000);
  4481.           _DAT_ffff8ad0 = 0;
  4482.         }
  4483.       }
  4484.       else {
  4485.         FUN_80026e48(param_1,0xffffc000);
  4486.         _DAT_ffff8ae4 = 0;
  4487.       }
  4488.     }
  4489.     else {
  4490.       _DAT_ffff8ab0 = _DAT_ffff8ab0 + 1;
  4491.       if (_DAT_ffff8ad4 + _DAT_ffff8ad8 < 2) {
  4492.         _DAT_ffff8ad0 = _DAT_ffff8210;
  4493.         FUN_80026e54(param_1,0xffffc000);
  4494.         if (_DAT_ffff8210 == 1) {
  4495.           FUN_80026e54(param_1,0xffffc000);
  4496.         }
  4497.         else {
  4498.           FUN_80026e54(param_1,0x4000);
  4499.         }
  4500.         _DAT_ffff8210 = -_DAT_ffff8210;
  4501.       }
  4502.       else {
  4503.         FUN_80022930(param_1,param_2 + 0x170);
  4504.         _DAT_ffff8ab0 = 0;
  4505.         _DAT_ffff8b54 = 1;
  4506.       }
  4507.     }
  4508.   }
  4509.   iVar3 = *(int *)(param_2 + 0x4c);
  4510. LAB_8006cde4:
  4511.   if ((iVar3 < *(int *)(param_2 + 0x20)) ||
  4512.      ((iVar3 = FUN_80062b1c(), iVar3 != 0 && ((0x32 < _DAT_ffff8afc || (0x32 < _DAT_ffff8b00)))))) {
  4513.     change_action(param_1,0xb,"JAC_SusAttente",0xffff81dc,0x1a64);
  4514.     *(undefined4 *)(param_2 + 0xbc) = 0;
  4515.     _DAT_ffff8b18 = 0;
  4516.     _DAT_ffff8ad0 = 0;
  4517.     _DAT_ffff8ae0 = 0;
  4518.     _DAT_ffff8ae4 = 0;
  4519.     _DAT_ffff8b5c = 0;
  4520.     FUN_80024da4(param_1,0xc);
  4521.     _DAT_ffff8b54 = 0;
  4522.     _DAT_ffff8b50 = 0;
  4523.   }
  4524.   else {
  4525.     iVar3 = FUN_8002326c(2);
  4526.     if ((iVar3 == 0) || (*(int *)(param_2 + 0x44) < 0x1f)) {
  4527.       iVar3 = FUN_8002326c(0xb);
  4528.       if (iVar3 == 0) {
  4529.         iVar3 = FUN_8002376c(2);
  4530.         if (iVar3 != 0) {
  4531.           *(undefined4 *)(param_2 + 0x58) = 0;
  4532.         }
  4533.         iVar3 = FUN_80063e90(param_1,param_2);
  4534.         if ((iVar3 != 1) && (iVar3 = FUN_80024a48(param_1,0x1d), iVar3 != 0)) {
  4535.           FUN_800647b4(param_1,param_2);
  4536.           FUN_800258d4(param_1,0x1d,0);
  4537.         }
  4538.       }
  4539.       else {
  4540.         *(undefined4 *)(param_2 + 0xbc) = 2;
  4541.         *(undefined2 *)(param_2 + 0xcc) = 0;
  4542.         change_action(param_1,0x1b,"YLT_GiPoingTir1",0xffff81dc,0x1a82);
  4543.         FUN_80024da4(param_1,0xc);
  4544.         _DAT_ffff8b54 = 0;
  4545.         _DAT_ffff8b50 = 0;
  4546.       }
  4547.     }
  4548.     else {
  4549.       *(undefined4 *)(param_2 + 0x68) = 0;
  4550.       _DAT_ffff8b38 = 1;
  4551.       FUN_800647b4(param_1,param_2);
  4552.     }
  4553.   }
  4554.                     /* WARNING: Read-only address (ram,0x800b997c) is written */
  4555.   return 1;
  4556. LAB_8006a408:
  4557.   iVar3 = FUN_80023a8c(0);
  4558.   if ((iVar3 != 0) || (iVar3 = FUN_80062b1c(), iVar3 != 0)) {
  4559.     FUN_80064210(param_1,param_2);
  4560.     return 1;
  4561.   }
  4562.   change_action(param_1,1,"YLT_Walk",0xffff81dc,0x1381);
  4563.   FUN_800642a8(param_1,param_2);
  4564.   goto LAB_800688a0;
  4565. LAB_8006e82c:
  4566.   FUN_80066414(param_1);
  4567.   if (*(int *)(param_2 + 0xb8) == 1) {
  4568.     FUN_80065d10(param_1,param_2);
  4569.     *(undefined2 *)(param_2 + 0x108) = 0;
  4570.     *(undefined4 *)(param_2 + 0xb8) = 0;
  4571.     *(undefined4 *)(param_2 + 0xbc) = 0;
  4572.   }
  4573.   if (*(int *)(param_2 + 0x164) != 0) {
  4574.     *(undefined2 *)(param_2 + 0x162) = 1;
  4575.     FUN_80064b00(param_1,param_2);
  4576.   }
  4577.   sVar1 = *(short *)(param_2 + 0x104);
  4578.   if (sVar1 == 1) {
  4579.     change_action(param_1,0xffffffff,"BNT_PafEcraseAction",0xffff81dc,0x1e76);
  4580.   }
  4581.   else {
  4582.     if (sVar1 == 2) {
  4583.       *(undefined4 *)(param_2 + 0x100) = 0;
  4584.       change_action(param_1,0xffffffff,"CHG_RaymanElectrique",0xffff81dc,0x1e6f);
  4585.     }
  4586.     else {
  4587.       if ((sVar1 == 5) || (sVar1 == 0)) {
  4588.         change_action(param_1,0x72,"CHG_PafSol",0xffff81dc,0x1e6b);
  4589.       }
  4590.       else {
  4591.         change_action(param_1,0x72,"CHG_PafSol",0xffff81dc,0x1e7e);
  4592.       }
  4593.     }
  4594.   }
  4595.   FUN_80026ffc(param_1,3);
  4596.   FUN_80024da4(param_1,0x11);
  4597.   if (*(short *)(param_2 + 0x12a) != 0) {
  4598.     return 1;
  4599.   }
  4600.   if (*(short *)(param_2 + 0x104) == 2) {
  4601.     return 1;
  4602.   }
  4603.   FUN_80026e54(param_1,0);
  4604.   FUN_80026e48(param_1,0);
  4605.   FUN_80026e60(param_1,0);
  4606.   return 1;
  4607. }
Add Comment
Please, Sign In to add comment