Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // (c) ReactiioN, 31.03.2015
- void ForceFullUpdate( void )
- {
- DWORD dwClientState = *( DWORD* )( ( DWORD )GetModuleHandleA( "engine.dll" ) + ( 0x1055B434 - 0x10000000 ) ); // v3
- if( *( DWORD* )( dwClientState + 0x154 ) != -1 )
- {
- *( DWORD* )( dwClientState + 0x154 ) = -1;
- }
- }
- // IDA engine.dll "connection problem" dump
- double __usercall sub_100EFFF0@<st0>(char a1@<cl>, double result@<st0>, float a3@<xmm0>)
- {
- int v3; // edi@1 // dwClientState wird initialisiert
- char v4; // bh@1
- double v5; // st6@2
- char v6; // al@2
- char v7; // bl@3
- int v8; // eax@8
- int v9; // esi@18
- char v10; // al@18
- int v11; // ecx@26
- float v12; // xmm0_4@27
- int v13; // ecx@32
- int v14; // eax@37
- bool v15; // zf@37
- __m128 v16; // xmm2@38
- __m128 v17; // xmm3@38
- __m128d v18; // xmm0@40
- __m128d v19; // xmm1@40
- char v20; // [sp+28h] [bp-48h]@36
- float v21; // [sp+68h] [bp-8h]@1
- float v22; // [sp+6Ch] [bp-4h]@16
- v3 = dword_1055B434; // engine.dll + ( 1055B434 - 10000000 )
- v4 = a1;
- v21 = a3;
- if ( *(_DWORD *)(dword_1055B434 + 232) >= 2 )
- {
- v5 = sub_1021FFE0();
- if ( v6 )
- {
- v7 = 1;
- if ( (unsigned __int8)(*(int (**)(void))(*off_1055A720 + 24))() )
- {
- if ( !*(_BYTE *)(v3 + 19608) )
- return result;
- v7 = 0;
- }
- if ( !(unsigned __int8)(*(int (**)(void))(**(_DWORD **)(v3 + 148) + 24))()
- || ((int (__stdcall ***)(char))dword_10566F44 != &off_10566F28 ? (v8 = (*(int (**)(void))(*(_DWORD *)dword_10566F44
- + 52))()) : (v8 = dword_10566F58),
- v8) )
- {
- if ( *(double *)(v3 + 240) > *(double *)&qword_107F3ED8
- || !(unsigned __int8)(*(int (**)(void))(**(_DWORD **)(v3 + 148) + 232))()
- || !v4 )
- v7 = 0;
- }
- if ( *(_DWORD *)(v3 + 232) == 6 )
- {
- LODWORD(v22) = *(_DWORD *)(v3 + 19580) + *(_DWORD *)(v3 + 19584) + 1;
- if ( dword_105670EC <= 0 || *(_DWORD *)(dword_1055B434 + 232) )
- {
- v9 = *(_DWORD *)dword_107F15E8;
- v10 = sub_10103EB0(v3 + 8);
- (*(void (__thiscall **)(int, float, _DWORD, _DWORD))(v9 + 84))(
- dword_107F15E8,
- LODWORD(v22),
- *(float *)&dword_105670E8 - v21,
- v10 == 0);
- if ( (unsigned __int8)(**off_1055A71C)[4]() )
- ((void (__stdcall *)(_DWORD))(**off_1055A71C)[9])(LODWORD(v22));
- }
- if ( !v7 )
- {
- (*(void (**)(void))(**(_DWORD **)(v3 + 148) + 188))();
- ++*(_DWORD *)(v3 + 19584);
- return result;
- }
- v5 = sub_100EFDA0();
- }
- if ( v7 )
- {
- if ( !(unsigned __int8)(*(int (__usercall **)@<eax>(double@<st0>))(**(_DWORD **)(v3 + 148) + 28))(result)
- || (unsigned __int8)(*(int (**)(void))(*off_1055A720 + 24))()
- || *(_DWORD *)(v3 + 232) != 6 )
- {
- v13 = dword_1055AB14;
- if ( (int (__stdcall ***)(char))dword_1055AB14 != &off_1055AAF8 )
- {
- (*(void (**)(void))(*(_DWORD *)dword_1055AB14 + 48))();
- v13 = dword_1055AB14;
- v21 = result;
- }
- (*(void (__stdcall **)(signed int))(*(_DWORD *)v13 + 60))(-1082130432);
- }
- else
- {
- (*(void (**)(void))(**(_DWORD **)(v3 + 148) + 104))();
- v11 = *(_DWORD *)(v3 + 148);
- v22 = result;
- (*(void (**)(void))(*(_DWORD *)v11 + 88))();
- v21 = result;
- if ( (float)(v22 - v21) == 0.0 )
- {
- v12 = 0.0;
- }
- else
- {
- (*(void (**)(void))(**(_DWORD **)(v3 + 148) + 88))();
- v21 = result;
- v12 = v22 - v21;
- }
- (*(void (__stdcall **)(float))(*(_DWORD *)dword_1055AB14 + 60))(LODWORD(v12));
- (*(void (__thiscall **)(int *))(dword_107C46C0 + 168))(&dword_107C46C0);
- if ( *(_DWORD *)(v3 + 340) != -1 ) // dwClientState + 0x154 != -1
- {
- sub_100B5D40(v3 + 8);
- *(_DWORD *)(v3 + 340) = -1; // dwClientState + 0x154 = -1
- DevMsg("Requesting full game update (%s)...\n", "connection problem");
- }
- }
- if ( *(_DWORD *)(v3 + 232) == 6 )
- {
- sub_100F2150(*(_DWORD *)(v3 + 340), dword_107F3D28);
- (*(void (__stdcall **)(char *, _DWORD, _DWORD))(**(_DWORD **)(v3 + 148) + 168))(&v20, 0, 0);
- sub_100C0280(&v20);
- }
- v14 = (*(int (__stdcall **)(_DWORD))(**(_DWORD **)(v3 + 148) + 192))(0);
- v15 = *(_DWORD *)(v3 + 232) == 6;
- *(_DWORD *)(v3 + 19580) = v14;
- *(_DWORD *)(v3 + 19584) = 0;
- if ( v15 )
- {
- (*(void (__thiscall **)(int *))(dword_1077F928 + 48))(&dword_1077F928);
- v16 = (__m128)1065353216i64;
- v21 = v5;
- v16.m128_f32[0] = 1.0 / v21;
- v17 = (__m128)(unsigned int)dword_105670E8;
- if ( (float)(1.0 / v21) <= *(float *)&dword_105670E8 )
- v17 = v16;
- v18 = 0i64;
- v19 = (__m128d)(unsigned __int64)qword_107F3ED8;
- v19.m128d_f64[0] = *(double *)&qword_107F3ED8 - *(double *)(v3 + 240);
- if ( v19.m128d_f64[0] >= 0.0 )
- {
- if ( v19.m128d_f64[0] <= COERCE_DOUBLE(_mm_cvtps_pd(v17)) )
- v18 = v19;
- else
- v18 = _mm_cvtps_pd(v17);
- }
- *(double *)(v3 + 240) = COERCE_DOUBLE(_mm_cvtps_pd(v16))
- + *(double *)&qword_107F3ED8
- - COERCE_DOUBLE(_mm_cvtps_pd(_mm_cvtpd_ps(v18)));
- }
- else
- {
- *(double *)(v3 + 240) = *(double *)&qword_107F3ED8 + 0.2;
- }
- }
- }
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement