Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int __usercall Packet::WriteBits@<eax>(unsigned int *a1@<edx>, _DWORD **a2@<ecx>, int a3, int a4, unsigned int a5)
- {
- unsigned int *v5; // esi
- signed int v6; // ebx
- int v7; // edx
- signed int v8; // ebx
- unsigned int v9; // eax
- _DWORD *v10; // edi
- signed int v11; // ecx
- signed int v12; // esi
- int v13; // ecx
- int v14; // edx
- char v15; // al
- _DWORD *v16; // edx
- int result; // eax
- int *v18; // [esp+Ch] [ebp-8h]
- _DWORD *v19; // [esp+10h] [ebp-4h]
- v5 = a1;
- v18 = (int *)a1;
- v19 = a2;
- if ( a5 >= 0x40 )
- {
- v8 = -1;
- }
- else
- {
- v6 = 0;
- if ( a5 >= 0x20 )
- v6 = 1 << a5;
- v7 = v6 ^ (1 << a5);
- if ( a5 >= 0x40 )
- v6 ^= 1 << a5;
- v8 = (__PAIR__((unsigned int)v6, v7) - 1) >> 32;
- }
- v9 = *v5;
- v10 = *a2;
- v11 = 1 << *v5;
- v12 = 0;
- if ( v9 >= 0x20 )
- v12 = v11;
- v13 = v12 ^ v11;
- if ( v9 >= 0x40 )
- v12 = v13;
- v10[1] &= (__PAIR__((unsigned int)v12, v13) - 1) >> 32;
- *v10 &= v13 - 1;
- *v10 |= sub_B900E0(*v18, a4 & v8);
- v10[1] |= v14;
- if ( ((*v18 + a5 + 7) & 0xFFFFFFF8) <= 0x40 )
- {
- v16 = v19;
- }
- else
- {
- v15 = sub_A83520(64 - *v18, a4);
- v16 = v19;
- *(_BYTE *)(*v19 + 8) = v15;
- }
- *v16 += (a5 + *v18) >> 3;
- result = ((_BYTE)a5 + (unsigned __int8)*v18) & 7;
- *v18 = result;
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment