Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int __usercall sub_51CD00<eax>(int a1<eax>, int a2, float a3, float a4, float a5, int a6)
- {
- int v6; // edx@1
- float v7; // ebx@1
- float v8; // ebp@1
- int v9; // edi@1
- float v10; // esi@1
- float v11; // ecx@1
- int result; // eax@2
- char v13; // al@2
- int (__cdecl *v14)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD); // ecx@6
- char v15; // al@8
- int v16; // eax@12
- int v17; // ecx@13
- int v18; // edx@13
- int v19; // ecx@16
- int v20; // edx@16
- int v21; // ecx@21
- int v22; // edx@21
- int v23; // ecx@25
- int v24; // edx@25
- float v25; // edx@28
- float v26; // ecx@28
- float v27; // edx@28
- int v28; // ecx@28
- int v29; // eax@30
- int v30; // edx@36
- float v31; // edx@37
- float v32; // ecx@37
- int v33; // ebp@40
- char v34; // zf@44
- double v35; // st7@47
- double v36; // st7@48
- int v37; // [sp-10h] [bp-38h]@13
- float v38; // [sp-Ch] [bp-34h]@13
- float v39; // [sp-8h] [bp-30h]@1
- float v40; // [sp-4h] [bp-2Ch]@1
- char v41; // [sp+13h] [bp-15h]@39
- int v42; // [sp+14h] [bp-14h]@30
- int v43; // [sp+18h] [bp-10h]@41
- v9 = a1;
- __uncaught_exception();
- LODWORD(v11) = *(_DWORD *)(v9 + 60);
- v7 = a3;
- v8 = a4;
- v10 = a5;
- LODWORD(v40) = *(_DWORD *)(v9 + 64);
- v39 = v11;
- if ( !(unsigned __int8)sub_51C4F0(
- *(_BYTE *)(v9 + 8),
- a2,
- LODWORD(a3),
- LODWORD(a4),
- LODWORD(a5),
- LODWORD(v11),
- LODWORD(v40)) )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- v13 = sub_51BC40(v9, v6, a3, a4, a5);
- result = sub_51C9F0(v9, 16, "'%s' is not a valid value for dvar '%s'\n", v13);
- if ( (_BYTE)result )
- result = sub_51CA60(*(_BYTE *)(v9 + 8), *(float *)(v9 + 60), *(float *)(v9 + 64));
- if ( *(_BYTE *)(v9 + 8) != 6 )
- return result;
- v6 = *(_DWORD *)(v9 + 44);
- LODWORD(v7) = *(_DWORD *)(v9 + 48);
- LODWORD(v8) = *(_DWORD *)(v9 + 52);
- LODWORD(v10) = *(_DWORD *)(v9 + 56);
- a2 = *(_DWORD *)(v9 + 44);
- LODWORD(a3) = *(_DWORD *)(v9 + 48);
- LODWORD(a4) = *(_DWORD *)(v9 + 52);
- LODWORD(a5) = *(_DWORD *)(v9 + 56);
- }
- v14 = *(int (__cdecl **)(_DWORD, _DWORD, _DWORD, _DWORD, _DWORD))(v9 + 68);
- if ( v14 )
- {
- if ( !(unsigned __int8)v14(v9, v6, LODWORD(v7), LODWORD(v8), LODWORD(v10)) )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- v15 = sub_51BC40(v9, a2, a3, a4, a5);
- return sub_51C9F0(v9, 16, "'%s' is not a valid value for dvar '%s'\n\n", v15);
- }
- v10 = a5;
- v8 = a4;
- v7 = a3;
- v6 = a2;
- }
- if ( a6 != 1 && a6 != 2 )
- goto LABEL_53;
- v16 = *(_DWORD *)(v9 + 4);
- if ( v16 & 0x2000 )
- {
- v17 = *(_DWORD *)(v9 + 12);
- v37 = v6;
- v18 = *(_DWORD *)(v9 + 16);
- v38 = v7;
- v39 = v8;
- v40 = v10;
- result = sub_51CAA0(v17, v18, *(_DWORD *)(v9 + 20), *(_DWORD *)(v9 + 24), v37);
- if ( !result )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- result = sub_51C9F0(v9, 16, "%s is read only.\n", SLOBYTE(v40));
- }
- return result;
- }
- if ( v16 & 0x800 )
- {
- v19 = *(_DWORD *)(v9 + 12);
- v37 = v6;
- v20 = *(_DWORD *)(v9 + 16);
- v38 = v7;
- v39 = v8;
- v40 = v10;
- result = sub_51CAA0(v19, v20, *(_DWORD *)(v9 + 20), *(_DWORD *)(v9 + 24), v37);
- if ( !result )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- result = sub_51C9F0(v9, 16, "%s is write protected.\n", SLOBYTE(v40));
- }
- return result;
- }
- if ( a6 == 1 )
- {
- if ( v16 & 4 && !byte_78ED24 )
- {
- v21 = *(_DWORD *)(v9 + 12);
- v37 = v6;
- v22 = *(_DWORD *)(v9 + 16);
- v38 = v7;
- v39 = v8;
- v40 = v10;
- result = sub_51CAA0(v21, v22, *(_DWORD *)(v9 + 20), *(_DWORD *)(v9 + 24), v37);
- if ( !result )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- result = sub_51C9F0(v9, 16, "%s is cheat protected.\n", SLOBYTE(v40));
- }
- return result;
- }
- if ( v16 != 256 && !(v16 & 0x10001) )
- {
- v23 = *(_DWORD *)(v9 + 12);
- v37 = v6;
- v24 = *(_DWORD *)(v9 + 16);
- v38 = v7;
- v39 = v8;
- v40 = v10;
- result = sub_51CAA0(v23, v24, *(_DWORD *)(v9 + 20), *(_DWORD *)(v9 + 24), v37);
- if ( !result )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- result = sub_51C9F0(v9, 16, "%s is internal.\n", SLOBYTE(v40));
- }
- return result;
- }
- }
- if ( v16 & 2 )
- {
- sub_51CBB0(v6, v7, v8, v10);
- LODWORD(v25) = *(_DWORD *)(v9 + 16);
- v37 = *(_DWORD *)(v9 + 12);
- LODWORD(v26) = *(_DWORD *)(v9 + 20);
- v38 = v25;
- LODWORD(v27) = *(_DWORD *)(v9 + 24);
- v39 = v26;
- v28 = *(_DWORD *)(v9 + 28);
- v40 = v27;
- result = sub_51CAA0(v28, *(_DWORD *)(v9 + 32), *(_DWORD *)(v9 + 36), *(_DWORD *)(v9 + 40), v37);
- if ( !result )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- result = sub_51C9F0(v9, 16, "%s will be changed upon restarting.\n", SLOBYTE(v40));
- }
- }
- else
- {
- LABEL_53:
- v29 = *(_DWORD *)(v9 + 4);
- v42 = *(_DWORD *)(*MK_FP(__FS__, 44) + 4 * LODWORD(TlsIndex));
- if ( ~*(_DWORD *)(v42 + 220) & v29 )
- {
- if ( !(unsigned __int8)sub_4D5300() || *(_DWORD *)(v9 + 4) & 0x1200 )
- {
- LODWORD(v40) = *(_DWORD *)v9;
- return sub_51C9F0(v9, 16, "%s cannot be changed.\n", SLOBYTE(v40));
- }
- sub_4ECDF0();
- sub_4CCC10();
- *(_DWORD *)dword_585132C |= *(_DWORD *)(v9 + 4);
- v10 = a5;
- v8 = a4;
- v7 = a3;
- v6 = a2;
- }
- else
- {
- *(_DWORD *)(v42 + 216) |= v29;
- }
- v37 = v6;
- v30 = *(_DWORD *)(v9 + 12);
- v38 = v7;
- v39 = v8;
- v40 = v10;
- if ( sub_51CAA0(v30, *(_DWORD *)(v9 + 16), *(_DWORD *)(v9 + 20), *(_DWORD *)(v9 + 24), v37) )
- {
- LODWORD(v31) = *(_DWORD *)(v9 + 16);
- v37 = *(_DWORD *)(v9 + 12);
- LODWORD(v32) = *(_DWORD *)(v9 + 20);
- v38 = v31;
- result = sub_51CBB0(v37, v31, v32, *(float *)(v9 + 24));
- }
- else
- {
- result = *(_BYTE *)(v9 + 8);
- switch ( result )
- {
- case 7:
- v41 = sub_51B930(v9);
- if ( v41 )
- v33 = *(_DWORD *)(v9 + 12);
- else
- v33 = v43;
- sub_51B9B0(&v43);
- *(_DWORD *)(v9 + 12) = v43;
- result = sub_51B950(v9);
- if ( (_BYTE)result )
- result = sub_51B990();
- v34 = v41 == 0;
- *(_DWORD *)(v9 + 28) = *(_DWORD *)(v9 + 12);
- if ( v34 )
- goto LABEL_50;
- result = sub_516EA0(v33);
- *(_BYTE *)(v9 + 9) = 1;
- break;
- case 2:
- *(float *)(v9 + 12) = *(float *)&a2;
- *(float *)(v9 + 16) = a3;
- *(float *)(v9 + 32) = a3;
- *(float *)(v9 + 28) = *(float *)&a2;
- *(_BYTE *)(v9 + 9) = 1;
- break;
- case 3:
- case 9:
- *(float *)(v9 + 12) = *(float *)&a2;
- *(float *)(v9 + 16) = a3;
- *(float *)(v9 + 20) = a4;
- *(float *)(v9 + 36) = a4;
- v35 = a3;
- *(float *)(v9 + 28) = *(float *)&a2;
- *(float *)(v9 + 32) = v35;
- *(_BYTE *)(v9 + 9) = 1;
- break;
- case 4:
- *(float *)(v9 + 12) = *(float *)&a2;
- *(float *)(v9 + 16) = a3;
- *(float *)(v9 + 20) = a4;
- *(float *)(v9 + 24) = a5;
- *(float *)(v9 + 40) = a5;
- v36 = a4;
- *(float *)(v9 + 28) = *(float *)&a2;
- *(float *)(v9 + 32) = a3;
- *(float *)(v9 + 36) = v36;
- *(_BYTE *)(v9 + 9) = 1;
- break;
- default:
- result = a2;
- *(_DWORD *)(v9 + 12) = a2;
- *(_DWORD *)(v9 + 28) = a2;
- *(_DWORD *)(v9 + 16) = LODWORD(v7);
- *(_DWORD *)(v9 + 32) = LODWORD(v7);
- *(_DWORD *)(v9 + 20) = LODWORD(v8);
- *(_DWORD *)(v9 + 36) = LODWORD(v8);
- *(_DWORD *)(v9 + 24) = LODWORD(v10);
- *(_DWORD *)(v9 + 40) = LODWORD(v10);
- LABEL_50:
- *(_BYTE *)(v9 + 9) = 1;
- break;
- }
- }
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement