Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __usercall LoadModel(double a1@<st0>, GliTexture *model_, void *Dst, int a4)
- {
- GliTexture *model; // esi@1
- int v5; // eax@6
- void *v6; // edi@7
- char v7; // al@10
- char v8; // al@12
- unsigned __int16 v9; // dx@17
- char v10; // al@18
- char v11; // al@19
- unsigned __int16 v12; // dx@20
- int v13; // eax@23
- size_t v14; // eax@24
- unsigned __int16 v15; // bx@25
- int v16; // eax@25
- int v17; // ecx@25
- unsigned __int16 v18; // bp@27
- int j; // ecx@28
- unsigned __int16 v20; // bp@31
- unsigned __int16 v21; // bp@36
- int i; // ecx@37
- unsigned __int16 v23; // bp@40
- int v24; // eax@44
- int v25; // [sp-4h] [bp-14h]@48
- GliTexture *model_a; // [sp+14h] [bp+4h]@6
- void *Dsta; // [sp+18h] [bp+8h]@32
- void *Dstb; // [sp+18h] [bp+8h]@41
- int v29; // [sp+1Ch] [bp+Ch]@6
- model = model_;
- if ( model_ )
- {
- ++dword_502660;
- if ( !a4 && Get_SNA_PTX_Something() != 1 && !(dword_502660 % 0x14u) )
- sub_45F7E0(a1, 1);
- v29 = model_->word18;
- v5 = model_->dword14;
- model_a = model_->word1A;
- if ( v5 & 0x80000000 )
- {
- v6 = Dst;
- LoadModelWithTexture(model, model->textureFilename, Dst);
- }
- else
- {
- if ( !(v5 & 0x40000000) )
- return;
- v6 = Dst;
- sub_426320(model, model->textureFilename, Dst);
- }
- model->word18 = v29;
- v7 = model->byte45;
- model->dword8 = v6;
- model->word1A = model_a;
- if ( v7 & 0x10 )
- model->byte45 = v7 | 0xC;
- v8 = model->byte45;
- if ( v8 & 0xC && !(byte_503688 & 8) )
- {
- if ( v8 & 4 )
- {
- if ( v8 & 0x10 )
- model->byte45 = v8 & 0xFB;
- v9 = model->word1C;
- model->byte45 |= 1u;
- sub_425F40(v6, model->word1E, v9);
- model->word1E *= 2;
- }
- v10 = model->byte45;
- if ( v10 & 8 )
- {
- v11 = v10 | 2;
- model->byte45 = v11;
- if ( v11 & 0x10 )
- {
- v12 = model->word1C;
- model->byte45 = v11 & 0xF7;
- sub_426000(v6, model->word1E, v12);
- }
- else
- {
- sub_425FA0(v6, model->word1E, model->word1C);
- }
- model->word1C *= 2;
- }
- }
- v13 = model->dword14;
- if ( BYTE1(v13) & 4 )
- {
- model->word1C >>= 1;
- v14 = 4 * model->word1C * model->word1E;
- memmove(v6, v6 + v14, v14);
- }
- v15 = model->word1C;
- LOWORD(v16) = model->word1E;
- v17 = model->dword14;
- if ( !(v17 & 2) || v17 & 8 )
- {
- v21 = model->word1E;
- if ( v16 > model->word1A )
- {
- for ( i = v15; ; i = v15 )
- {
- sub_425A90(v6, v6, i, v16);
- v21 >>= 1;
- LOWORD(v16) = v21;
- if ( v21 <= model->word1A )
- break;
- }
- }
- v23 = v15;
- if ( v15 > model->word18 )
- {
- v16 = v16;
- for ( Dstb = v16; ; v16 = Dstb )
- {
- sub_425AE0(v6, v6, v15, v16);
- v23 >>= 1;
- if ( v23 <= model->word18 )
- break;
- v15 = v23;
- }
- }
- }
- else
- {
- v18 = model->word1E;
- if ( v16 > model->word1A )
- {
- for ( j = v15; ; j = v15 )
- {
- sub_425B50(v6, v6, j, v16, model->dword2C);
- v18 >>= 1;
- LOWORD(v16) = v18;
- if ( v18 <= model->word1A )
- break;
- }
- }
- v20 = v15;
- if ( v15 > model->word18 )
- {
- v16 = v16;
- for ( Dsta = v16; ; v16 = Dsta )
- {
- sub_425BE0(v6, v6, v15, v16, model->dword2C);
- v20 >>= 1;
- if ( v20 <= model->word18 )
- break;
- v15 = v20;
- }
- }
- }
- v24 = model->dword14;
- if ( v24 & 0x902 )
- {
- if ( dword_503684 & 0x10 )
- {
- if ( v24 & 0x808 )
- {
- model->dword14 = v24 & 0xFFFFFFE5 | 0x900;
- }
- else
- {
- v25 = model->dword2C;
- if ( v24 & 0x10 )
- sub_4254B0(v6, model->word1A, model->word18, v25);
- else
- sub_425200(v6, model->word1A, model->word18, v25);
- model->dword14 = model->dword14 & 0xFFFFFFED | 0x100;
- }
- }
- else if ( v24 & 0x808 )
- {
- sub_4251C0(v6, model->word1E, model->word1C, model->dword2C);
- model->dword14 = model->dword14 & 0xFFFFFFE7 | 0x800;
- }
- else if ( v24 & 0x10 )
- {
- sub_425240(model, v6);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement