Advertisement
Guest User

Untitled

a guest
Jul 5th, 2015
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.20 KB | None | 0 0
  1. bool __fastcall sub_1402725E0(__int64 a1, __int64 a2, __int64 a3, __int64 a4)
  2. {
  3.   __int64 v4; // rbx@1
  4.   unsigned int v5; // er12@1
  5.   __int64 v6; // rax@1
  6.   __int64 v7; // rdi@1
  7.   __int64 v8; // rcx@1
  8.   __int64 v9; // rax@3
  9.   __int64 v10; // rax@3
  10.   float v11; // xmm8_4@3
  11.   float v12; // xmm7_4@3
  12.   float v13; // xmm6_4@3
  13.   float v14; // xmm3_4@3
  14.   float v15; // xmm3_4@3
  15.   float v16; // xmm0_4@3
  16.   float v17; // xmm14_4@3
  17.   float v18; // xmm13_4@3
  18.   float v19; // xmm9_4@3
  19.   float v20; // xmm15_4@3
  20.   float v21; // xmm12_4@3
  21.   __int64 v22; // rdi@3
  22.   float v23; // xmm11_4@3
  23.   __int64 v24; // rcx@3
  24.   float v25; // xmm8_4@3
  25.   __int64 v26; // rax@5
  26.   unsigned __int64 v27; // rdx@5
  27.   signed int v28; // esi@5
  28.   float v29; // xmm0_4@7
  29.   __m128 v30; // xmm3@7
  30.   __m128 v31; // xmm3@7
  31.   signed int v32; // eax@8
  32.   __m128 v33; // xmm10@22
  33.   float v34; // xmm11_4@22
  34.   int v35; // xmm0_4@22
  35.   float v36; // xmm0_4@22
  36.   float v37; // xmm13_4@22
  37.   float v38; // xmm13_4@26
  38.   int v39; // xmm0_4@26
  39.   float v40; // xmm12_4@28
  40.   float v41; // xmm12_4@32
  41.   float v42; // xmm0_4@32
  42.   float v43; // xmm1_4@32
  43.   int v44; // xmm0_4@35
  44.   __int16 v45; // ax@35
  45.   __int64 v46; // rcx@36
  46.   __int64 v47; // r8@36
  47.   int v48; // edi@37
  48.   int v49; // xmm1_4@38
  49.   signed int v50; // er14@42
  50.   __m128 v51; // xmm10@43
  51.   __m128i v52; // xmm6@49
  52.   signed __int64 v53; // r12@49
  53.   signed __int64 v54; // r13@49
  54.   signed __int64 v55; // rdi@49
  55.   float v56; // xmm6_4@49
  56.   float v57; // xmm3_4@50
  57.   float v58; // xmm1_4@52
  58.   float v59; // xmm4_4@60
  59.   float v60; // xmm0_4@61
  60.   __int128 v61; // xmm1@66
  61.   int v62; // xmm0_4@66
  62.   int v63; // ecx@66
  63.   int v64; // xmm0_4@66
  64.   __int64 v65; // rax@66
  65.   double v66; // ST28_8@67
  66.   double v67; // ST20_8@67
  67.   double v68; // xmm0_8@68
  68.   bool result; // al@70
  69.   __int64 v70; // [sp+40h] [bp-A0h]@3
  70.   float v71; // [sp+48h] [bp-98h]@3
  71.   __int64 v72; // [sp+50h] [bp-90h]@3
  72.   float v73; // [sp+58h] [bp-88h]@3
  73.   unsigned __int64 Dst; // [sp+60h] [bp-80h]@3
  74.   float v75; // [sp+68h] [bp-78h]@3
  75.   __int64 v76; // [sp+70h] [bp-70h]@1
  76.   float v77; // [sp+78h] [bp-68h]@3
  77.  
  78.   v4 = a1;
  79.   v5 = a2;
  80.   LODWORD(v6) = sub_13FF71BF0(*(a1 + 800), a2, a3, a4);
  81.   (*(*v6 + 160i64))(v6, &v76, 0i64);
  82.   v7 = *(v4 + 800);
  83.   v8 = *(v7 + 584);
  84.   if ( !v8 )
  85.   {
  86.     sub_13FF72C50(*(v4 + 800));
  87.     v8 = *(v7 + 584);
  88.   }
  89.   LODWORD(v9) = (*(*v8 + 192i64))();
  90.   LODWORD(v10) = sub_13FF7CD70(v9, &v72);
  91.   sub_13F77DF10(v10, &Dst);
  92.   v11 = *&dword_141195844;
  93.   v12 = *&dword_141195840;
  94.   v13 = *&dword_141195848;
  95.   v14 = ((*(&Dst + 1) * *&dword_141195844) + (*&Dst * *&dword_141195840)) + (v75 * *&dword_141195848);
  96.   *&v70 = *&Dst - (*&dword_141195840 * v14);
  97.   *(&v70 + 1) = *(&Dst + 1) - (*&dword_141195844 * v14);
  98.   v71 = v75 - (*&dword_141195848 * v14);
  99.   sub_13F275D80(&v70);
  100.   v15 = ((*(&v76 + 1) * v11) + (*&v76 * v12)) + (v77 * v13);
  101.   v16 = *(&v76 + 1) - (v11 * v15);
  102.   *&v72 = *&v76 - (v12 * v15);
  103.   *(&v72 + 1) = *(&v76 + 1) - (v11 * v15);
  104.   v73 = v77 - (v13 * v15);
  105.   sub_13F275D80(&v72);
  106.   v17 = v71;
  107.   v18 = *(&v70 + 1);
  108.   v19 = v16;
  109.   v20 = *&v70;
  110.   v21 = (*(&v70 + 1) * v13) - (v71 * v11);
  111.   v22 = *(v4 + 800);
  112.   v23 = (v71 * v12) - (v13 * *&v70);
  113.   v24 = *(v22 + 584);
  114.   v25 = (v11 * *&v70) - (*(&v70 + 1) * v12);
  115.   if ( !v24 )
  116.   {
  117.     sub_13FF72C50(*(v4 + 800));
  118.     v24 = *(v22 + 584);
  119.   }
  120.   LODWORD(v26) = (*(*v24 + 192i64))();
  121.   memmove(&Dst, (v26 + 49504), 0x3Cui64);
  122.   v70 = qword_1431EB920;
  123.   v27 = Dst >> 48;
  124.   v28 = 0;
  125.   v71 = *&dword_1431EB928;
  126.   if ( (Dst >> 48) || BYTE7(Dst) )
  127.   {
  128.     v71 = 0.0;
  129.     v29 = SBYTE7(Dst);
  130.     *&v70 = (((v18 * *&dword_141195848) - (v17 * *&dword_141195844)) * v29) + (v27 * v20);
  131.     *(&v70 + 1) = (((v17 * *&dword_141195840) - (*&dword_141195848 * v20)) * v29) + (v18 * v27);
  132.     sub_13F275D80(&v70);
  133.     v30 = v70;
  134.     v30.m128_f32[0] = ((*&v70 * v20) + (*(&v70 + 1) * v18)) + (v17 * v71);
  135.     v31 = _mm_unpacklo_ps(v30, v30);
  136.     if ( COERCE_DOUBLE(_mm_cvtps_pd(v31)) < 0.707 )
  137.     {
  138.       if ( v31.m128_f32[0] > -0.707 )
  139.       {
  140.         v32 = 3;
  141.         if ( (((*(&v70 + 1) * v23) + (*&v70 * v21)) + (v25 * v71)) <= 0.0 )
  142.           v32 = 2;
  143.       }
  144.       else
  145.       {
  146.         v32 = 1;
  147.       }
  148.     }
  149.     else
  150.     {
  151.       v32 = 0;
  152.     }
  153.     if ( v32 )
  154.     {
  155.       *(v4 + 912) = dword_14344858C;
  156.       if ( v32 == 1i64 )
  157.       {
  158.         *(v4 + 932) = 1065353216;
  159.         goto LABEL_18;
  160.       }
  161.     }
  162.     else
  163.     {
  164.       *(v4 + 912) = 1065353216;
  165.     }
  166.     *(v4 + 932) = dword_14344858C;
  167.     if ( v32 == 2i64 )
  168.     {
  169.       *(v4 + 952) = 1065353216;
  170. LABEL_21:
  171.       *(v4 + 972) = dword_14344858C;
  172.       goto LABEL_22;
  173.     }
  174. LABEL_18:
  175.     *(v4 + 952) = dword_14344858C;
  176.     if ( v32 == 3i64 )
  177.     {
  178.       *(v4 + 972) = 1065353216;
  179.       goto LABEL_22;
  180.     }
  181.     goto LABEL_21;
  182.   }
  183. LABEL_22:
  184.   v33 = v72;
  185.   v33.m128_f32[0] = ((*&v72 * v20) + (*(&v72 + 1) * v18)) + (v73 * v17);
  186.   v34 = ((v23 * *(&v72 + 1)) + (v21 * *&v72)) + (v25 * v73);
  187.   v35 = *(v4 + 808);
  188.   sub_13FE8CD50();
  189.   *(v4 + 808) = v35;
  190.   v36 = *(v4 + 812);
  191.   sub_13FE8CD50();
  192.   *(v4 + 812) = v36;
  193.   sub_13FEA9E90(qword_1432C4960);
  194.   v37 = v36;
  195.   if ( v19 >= 0.0 )
  196.   {
  197.     if ( v19 <= v36 )
  198.       v37 = v19;
  199.   }
  200.   else
  201.   {
  202.     v37 = 0.0;
  203.   }
  204.   sub_13FEA9E90(qword_1432C4960);
  205.   v38 = v37 / v36;
  206.   *(v4 + 824) = ((*&dword_143447C8C - *&dword_143447C0C) * v38) + *&dword_143447C0C;
  207.   v39 = dword_14344800C;
  208.   if ( *&dword_14344800C > v19 )
  209.   {
  210.     v39 = dword_143447F8C;
  211.     *(v4 + 824) = dword_143447F8C;
  212.   }
  213.   sub_13FEA9E30(qword_1432C4960);
  214.   sub_13FEA9E90(qword_1432C4960);
  215.   v40 = *&v39;
  216.   if ( *&v39 <= v19 )
  217.   {
  218.     if ( v19 <= *&v39 )
  219.       v40 = v19;
  220.     else
  221.       v40 = *&v39;
  222.   }
  223.   sub_13FEA9E60(qword_1432C4960);
  224.   v41 = v40 / *&v39;
  225.   v42 = *&dword_143447D0C;
  226.   v43 = ((*&dword_143447D8C - *&dword_143447D0C) * v41) + *&dword_143447D0C;
  227.   if ( *&dword_143447D0C <= v43 )
  228.   {
  229.     v42 = *&dword_143447E0C;
  230.     if ( v43 <= *&dword_143447E0C )
  231.       v42 = ((*&dword_143447D8C - *&dword_143447D0C) * v41) + *&dword_143447D0C;
  232.   }
  233.   *(v4 + 828) = v42;
  234.   sub_13FEA9E60(qword_1432C4960);
  235.   sub_13FEA9E90(qword_1432C4960);
  236.   v44 = *(v4 + 836);
  237.   sub_13FE8CD50();
  238.   v45 = *(v4 + 104);
  239.   *(v4 + 836) = v44;
  240.   if ( v45 == -1 )
  241.     goto LABEL_42;
  242.   v46 = *(v4 + 64);
  243.   v47 = *(*(v46 + 96) + 8i64 * v45);
  244.   if ( !v47 )
  245.     goto LABEL_42;
  246.   v48 = sub_13F7376E0(v46, *(v47 + 2));
  247.   if ( sub_13F79D5E0(v48) != -1 )
  248.   {
  249.     *(v4 + 824) = *&dword_14344828C * *(v4 + 824);
  250.     v49 = dword_14344828C;
  251. LABEL_41:
  252.     *(v4 + 828) = *&v49 * *(v4 + 828);
  253.     goto LABEL_42;
  254.   }
  255.   if ( sub_13F79D5E0(v48) != -1 )
  256.   {
  257.     *(v4 + 824) = *&dword_14344820C * *(v4 + 824);
  258.     v49 = dword_14344820C;
  259.     goto LABEL_41;
  260.   }
  261. LABEL_42:
  262.   v50 = 4;
  263.   if ( v19 != 0.0 )
  264.   {
  265.     v51 = _mm_unpacklo_ps(v33, v33);
  266.     if ( COERCE_DOUBLE(_mm_cvtps_pd(v51)) < 0.707 )
  267.     {
  268.       if ( v51.m128_f32[0] > -0.707 )
  269.       {
  270.         v50 = 3;
  271.         if ( v34 <= 0.0 )
  272.           v50 = 2;
  273.       }
  274.       else
  275.       {
  276.         v50 = 1;
  277.       }
  278.     }
  279.     else
  280.     {
  281.       v50 = 0;
  282.     }
  283.   }
  284.   v52 = _mm_cvtsi32_si128(v5);
  285.   v53 = v4 + 908;
  286.   v54 = 0i64;
  287.   v55 = v4 + 908;
  288.   LODWORD(v56) = _mm_cvtepi32_ps(v52);
  289.   do
  290.   {
  291.     v57 = 0.0;
  292.     if ( v54 == v50 && *&dword_14344830C <= v19 )
  293.     {
  294.       v58 = (v19 - *&dword_14344830C) / (*&dword_14344838C - *&dword_14344830C);
  295.       if ( v58 >= 0.0 )
  296.       {
  297.         if ( v58 > 1.0 )
  298.           v58 = 1.0;
  299.       }
  300.       else
  301.       {
  302.         v58 = 0.0;
  303.       }
  304.       v57 = (((*&dword_14344848C - *&dword_14344840C) * v58) + *&dword_14344840C) * *(v55 + 8);
  305.       if ( v57 >= 0.0 )
  306.       {
  307.         if ( v57 > 1.0 )
  308.           v57 = 1.0;
  309.       }
  310.       else
  311.       {
  312.         v57 = 0.0;
  313.       }
  314.     }
  315.     v59 = *v55;
  316.     if ( v57 < *v55 )
  317.     {
  318.       if ( (v56 - *(v55 - 8)) <= dword_143448088 )
  319.         goto LABEL_65;
  320.       v60 = *v55;
  321.       sub_13FE8CD50();
  322.     }
  323.     else
  324.     {
  325.       *(v55 - 8) = v56;
  326.       v60 = v59;
  327.       sub_13FE8CD80();
  328.     }
  329.     *v55 = v60;
  330. LABEL_65:
  331.     ++v54;
  332.     v55 += 20i64;
  333.     *(v55 - 24) = *(v4 + 836);
  334.   }
  335.   while ( v54 < 4 );
  336.   v61 = *(v4 + 856);
  337.   v62 = *(v4 + 852);
  338.   sub_13FE8CD80();
  339.   v63 = *(v4 + 864);
  340.   *(v4 + 852) = v62;
  341.   v64 = *(v4 + 860);
  342.   sub_13FE8CD80();
  343.   v65 = *(v4 + 800);
  344.   *(v4 + 860) = v64;
  345.   if ( dword_143448108 == *(v65 + 592) )
  346.   {
  347.     ((*off_14116A540)[20])();
  348.     ((*off_14116A540)[19])(off_14116A540, 0i64, 10i64);
  349.     v66 = *(v4 + 840);
  350.     v67 = *(v4 + 836);
  351.     ((*off_14116A540)[4])(
  352.       off_14116A540,
  353.       "blendBack: %.2f blendRight: %.2f walkRunAlpha: %.2f stopTransAlpha: %.2f speed: %.2f\n",
  354.       *(v4 + 808),
  355.       *(v4 + 812));
  356.     ((*off_14116A540)[4])(off_14116A540, "walkRatio: %.2f walkRate: %.2f \n", v38, *(v4 + 824));
  357.     ((*off_14116A540)[4])(off_14116A540, "runRatio: %.2f runRate: %.2f \n\n", v41, *(v4 + 828));
  358.     do
  359.     {
  360.       v68 = *(v53 + 4);
  361.       ((*off_14116A540)[4])(off_14116A540, "Dir[%d] alpha: %.2f rate: %.2f %s \n", v28++, *v53);
  362.       v53 += 20i64;
  363.     }
  364.     while ( v28 < 4 );
  365.     ((*off_14119E550)[7])(off_14119E550, "com_debugHUD", 1i64);
  366.   }
  367.   result = dword_143448188 == *(*(v4 + 800) + 592i64);
  368.   *(v4 + 796) = result;
  369.   return result;
  370. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement