Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned int __thiscall sub_7696D0(int this, int a2, int a3)
- {
- int v3; // edi@1
- int v4; // eax@1
- int v5; // ecx@2
- char v6; // al@2
- unsigned int v7; // edi@2
- int v8; // esi@6
- int v9; // eax@6
- __m128 v10; // xmm0@6
- bool v11; // cl@7
- int v12; // eax@13
- int v13; // ecx@14
- char v14; // al@14
- unsigned int v15; // edi@14
- int v16; // esi@18
- int v17; // eax@18
- __m128 v18; // xmm0@18
- bool v19; // cl@19
- unsigned int v20; // esi@24
- unsigned int v21; // esi@31
- unsigned int v22; // eax@31
- unsigned int v23; // esi@42
- unsigned int v24; // esi@49
- unsigned int v25; // eax@49
- unsigned int v26; // ecx@61
- unsigned int v27; // eax@61
- int v28; // ecx@64
- int v29; // eax@64
- unsigned int v30; // ecx@66
- unsigned int v31; // eax@66
- int v32; // ecx@69
- int v33; // eax@69
- int v34; // edi@71
- unsigned int v35; // esi@71
- unsigned int v36; // eax@71
- int v37; // edi@76
- int v38; // eax@76
- double v39; // st7@80
- int v40; // edi@81
- unsigned int v41; // esi@81
- unsigned int result; // eax@81
- int v43; // edi@86
- int v44; // eax@86
- double v45; // st7@90
- char v46; // [sp+17h] [bp-19h]@2
- char v47; // [sp+17h] [bp-19h]@14
- int v48; // [sp+18h] [bp-18h]@1
- int v49; // [sp+18h] [bp-18h]@61
- int v50; // [sp+1Ch] [bp-14h]@24
- int v51; // [sp+20h] [bp-10h]@69
- void **v52; // [sp+24h] [bp-Ch]@24
- int v53; // [sp+28h] [bp-8h]@24
- int v54; // [sp+2Ch] [bp-4h]@24
- v3 = this;
- v48 = this;
- v4 = *(_DWORD *)(this + 396);
- if ( v4 )
- {
- v5 = a2;
- v6 = v4 != *(_DWORD *)(a2 + 8);
- v7 = 0;
- v46 = v6;
- if ( v6 )
- goto LABEL_24;
- while ( v7 < *(_DWORD *)(v5 + 8) )
- {
- v8 = sub_4E6BC0(v48 + 388, v7);
- v9 = sub_5007D0(v7);
- v10 = (__m128)*(_DWORD *)v8;
- v10.m128_f32[0] = v10.m128_f32[0] - *(float *)v9;
- v11 = COERCE_FLOAT(*(_OWORD *)&_mm_and_ps(v10, (__m128)xmmword_F5B250)) > 0.001;
- ++v7;
- v6 = v11 | v46;
- v46 = v6;
- if ( v6 )
- goto LABEL_24;
- v5 = a2;
- }
- if ( v6 )
- goto LABEL_24;
- v3 = v48;
- }
- v12 = *(_DWORD *)(v3 + 428);
- if ( !v12 )
- goto LABEL_61;
- v13 = a3;
- v14 = v12 != *(_DWORD *)(a3 + 8);
- v15 = 0;
- v47 = v14;
- if ( !v14 )
- {
- while ( v15 < *(_DWORD *)(v13 + 8) )
- {
- v16 = sub_4E6BC0(v48 + 420, v15);
- v17 = sub_5007D0(v15);
- v18 = (__m128)*(_DWORD *)v16;
- v18.m128_f32[0] = v18.m128_f32[0] - *(float *)v17;
- v19 = COERCE_FLOAT(*(_OWORD *)&_mm_and_ps(v18, (__m128)xmmword_F5B250)) > 0.001;
- ++v15;
- v14 = v19 | v47;
- v47 = v14;
- if ( v14 )
- goto LABEL_24;
- v13 = a3;
- }
- if ( !v14 )
- {
- v3 = v48;
- goto LABEL_61;
- }
- }
- LABEL_24:
- v3 = v48;
- prism::error("Chassis reused with different wheel size setup: %s");
- v52 = &prism::string_dyn_t::vtable;
- v54 = 25;
- v53 = prism::pml_buffer_t::pml_buffer_t(25);
- v50 = (int)"Front wheel sizes, old [";
- *(_BYTE *)v53 = 0;
- prism::mstring_t::copy(&v50, 0, 0, -1);
- v20 = 0;
- if ( *(_DWORD *)(v48 + 396) )
- {
- if ( *(_DWORD *)(v48 + 396) <= 0u )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 484,
- "??A?$array_t@M@prism@@QAEAAMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- }
- do
- {
- sub_47A400(&v52, "%.3f", *(float *)(*(_DWORD *)(v48 + 392) + 4 * v20++));
- if ( v20 >= *(_DWORD *)(v48 + 396) )
- break;
- v50 = (int)", ";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- }
- while ( v20 < *(_DWORD *)(v48 + 396) );
- }
- v50 = (int)"] versus new [";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- v21 = 0;
- v22 = *(_DWORD *)(a2 + 8);
- if ( v22 )
- {
- if ( v22 <= 0 )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 470,
- "??A?$array_t@M@prism@@QBEABMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- }
- do
- {
- sub_47A400(&v52, "%.3f", *(float *)(*(_DWORD *)(a2 + 4) + 4 * v21++));
- if ( v21 < *(_DWORD *)(a2 + 8) )
- {
- v50 = (int)", ";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- }
- }
- while ( v21 < *(_DWORD *)(a2 + 8) );
- v3 = v48;
- }
- v50 = (int)"].";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- prism::error("%s");
- if ( ((int (__thiscall *)(void ***))v52[3])(&v52) )
- *(_BYTE *)v53 = 0;
- v50 = (int)"Rear wheel sizes, old [";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- v23 = 0;
- if ( *(_DWORD *)(v3 + 428) )
- {
- if ( *(_DWORD *)(v3 + 428) <= 0u )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 484,
- "??A?$array_t@M@prism@@QAEAAMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- }
- do
- {
- sub_47A400(&v52, "%.3f", *(float *)(*(_DWORD *)(v3 + 424) + 4 * v23++));
- if ( v23 >= *(_DWORD *)(v3 + 428) )
- break;
- v50 = (int)", ";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- }
- while ( v23 < *(_DWORD *)(v3 + 428) );
- }
- v50 = (int)"] versus new [";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- v24 = 0;
- v25 = *(_DWORD *)(a3 + 8);
- if ( v25 )
- {
- if ( v25 <= 0 )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 470,
- "??A?$array_t@M@prism@@QBEABMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- }
- do
- {
- sub_47A400(&v52, "%.3f", *(float *)(*(_DWORD *)(a3 + 4) + 4 * v24++));
- if ( v24 < *(_DWORD *)(a3 + 8) )
- {
- v50 = (int)", ";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- }
- }
- while ( v24 < *(_DWORD *)(a3 + 8) );
- v3 = v48;
- }
- v50 = (int)"].";
- prism::mstring_t::copy(&v50, strlen((const char *)v53), 0, -1);
- prism::error("%s");
- v52 = &prism::string_dyn_t::vtable;
- if ( (char *)v53 != &byte_E37D47 )
- operator delete__(v53);
- LABEL_61:
- v49 = v3 + 388;
- v26 = *(_DWORD *)(a2 + 8);
- v27 = *(_DWORD *)(v3 + 396);
- if ( v27 != v26 )
- {
- if ( v26 >= v27 )
- {
- v28 = v26 - v27;
- v29 = *(_DWORD *)(v3 + 388);
- v50 = v28;
- if ( (unsigned __int8)(*(int (__thiscall **)(int, int))(v29 + 20))(v3 + 388, v28) )
- *(_DWORD *)(v3 + 396) += v50;
- }
- else
- {
- *(_DWORD *)(v3 + 396) = v26;
- }
- }
- v50 = v3 + 420;
- v30 = *(_DWORD *)(a3 + 8);
- v31 = *(_DWORD *)(v3 + 428);
- if ( v31 != v30 )
- {
- if ( v30 >= v31 )
- {
- v32 = v30 - v31;
- v33 = *(_DWORD *)(v3 + 420);
- v51 = v32;
- if ( (unsigned __int8)(*(int (__thiscall **)(int, int))(v33 + 20))(v3 + 420, v32) )
- *(_DWORD *)(v3 + 428) += v51;
- }
- else
- {
- *(_DWORD *)(v3 + 428) = v30;
- }
- }
- v34 = a2;
- v35 = 0;
- v36 = *(_DWORD *)(a2 + 8);
- if ( v36 )
- {
- if ( v36 <= 0 )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 470,
- "??A?$array_t@M@prism@@QBEABMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- }
- do
- {
- v37 = 4 * v35 + *(_DWORD *)(v34 + 4);
- v38 = v49;
- if ( v35 >= *(_DWORD *)(v49 + 8) )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 484,
- "??A?$array_t@M@prism@@QAEAAMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- v38 = v49;
- }
- v39 = *(float *)v37;
- v34 = a2;
- *(float *)(*(_DWORD *)(v38 + 4) + 4 * v35++) = v39;
- }
- while ( v35 < *(_DWORD *)(a2 + 8) );
- }
- v40 = a3;
- v41 = 0;
- result = *(_DWORD *)(a3 + 8);
- if ( result )
- {
- if ( result <= 0 )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 470,
- "??A?$array_t@M@prism@@QBEABMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- }
- do
- {
- v43 = 4 * v41 + *(_DWORD *)(v40 + 4);
- v44 = v50;
- if ( v41 >= *(_DWORD *)(v50 + 8) )
- {
- prism::error("%s(%u): %s: %s");
- if ( dword_101391C )
- dword_101391C(
- "Index outside array boundaries.",
- "d:\\build_bot\\slave\\final_build_ets2_112\\build\\prism\\src\\p3core\\collections/arrays/arrays_base_impl.h",
- 484,
- "??A?$array_t@M@prism@@QAEAAMI@Z");
- RaiseException(0xC0000025u, 1u, 0, 0);
- v44 = v50;
- }
- v45 = *(float *)v43;
- v40 = a3;
- *(float *)(*(_DWORD *)(v44 + 4) + 4 * v41++) = v45;
- result = *(_DWORD *)(a3 + 8);
- }
- while ( v41 < result );
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement