Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void __thiscall sub_429450(int this, int a2)
- {
- int v2; // esi@1
- int v3; // ecx@1
- int v4; // eax@2
- double v5; // st7@2
- double v6; // st7@2
- double v7; // st7@3
- double v8; // st7@12
- double v9; // st6@18
- double v10; // st5@18
- double v11; // st7@22
- long double v12; // st7@24
- float v13; // [sp+1Ch] [bp-14h]@2
- float v14; // [sp+20h] [bp-10h]@2
- float v15; // [sp+24h] [bp-Ch]@18
- float v16; // [sp+28h] [bp-8h]@18
- float v17; // [sp+2Ch] [bp-4h]@18
- float v18; // [sp+34h] [bp+4h]@18
- v2 = this;
- v3 = *(_DWORD *)(this + 24);
- if ( v3 )
- {
- v13 = COERCE_FLOAT((*(int (**)(void))(*(_DWORD *)v3 + 24))());
- v4 = *(_DWORD *)(v2 + 4);
- v5 = (double)SLODWORD(v13) + *(float *)(v2 + 28);
- v13 = 0.0;
- v14 = v5;
- v6 = 0.0;
- switch ( v4 )
- {
- case 0:
- v13 = sub_429950(v2, dword_667CAC);
- v7 = flt_667C80;
- goto LABEL_11;
- case 5:
- v7 = flt_667C78;
- goto LABEL_11;
- case 1:
- if ( dword_667CAC == 1 )
- v13 = -1.0e10;
- else
- v6 = flt_667C7C;
- break;
- case 2:
- v6 = flt_667C78;
- break;
- case 3:
- v7 = flt_667C88;
- goto LABEL_11;
- case 4:
- v13 = sub_429950(v2, dword_667CAC);
- v7 = flt_667C84;
- LABEL_11:
- v6 = v7 + *(float *)&dword_667CA4;
- break;
- default:
- break;
- }
- v8 = v6 + v13 + v14;
- if ( v8 <= 0.0 )
- {
- if ( v8 < -96.0 )
- {
- *(_DWORD *)(v2 + 40) = dword_667C58;
- return;
- }
- if ( v8 <= -96.0 )
- {
- *(_DWORD *)(v2 + 40) = dword_667C58;
- return;
- }
- }
- }
- if ( (unsigned __int8)(*(int (__stdcall **)(int))(*(_DWORD *)v2 + 24))(v2) )
- {
- (*(void (__stdcall **)(int, float *))(*(_DWORD *)v2 + 48))(v2, &v15);
- v9 = *(float *)(a2 + 4) - v16;
- v10 = *(float *)(a2 + 8) - v17;
- v18 = v10 * v10 + v9 * v9 + (*(float *)a2 - v15) * (*(float *)a2 - v15);
- if ( (*(int (__stdcall **)(int, int *))(*(_DWORD *)v2 + 56))(v2, (int *)&v13) || v13 * v13 >= v18 )
- {
- if ( (*(int (__stdcall **)(int, float *))(*(_DWORD *)v2 + 52))(v2, &v14) )
- v11 = 1.0;
- else
- v11 = v14;
- LODWORD(v13) = 1597463007 - (SLODWORD(v18) >> 1);
- v14 = v18;
- v12 = __FYL2X__((1.5 - v13 * v13 * v18 * 0.5) * v13 * v11, 0.30102999566398119802) * 10.0;
- *(float *)(v2 + 40) = *(float *)&v12;
- }
- else
- {
- *(_DWORD *)(v2 + 40) = dword_667C58;
- }
- }
- else if ( *(float *)(v2 + 28) > -96.0 )
- {
- *(float *)(v2 + 40) = 100.0;
- }
- else
- {
- *(float *)(v2 + 40) = *(float *)&dword_667C58;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement