Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- __int64 __stdcall sub_5D0500(unsigned __int64 a1, unsigned int a2, unsigned int a3)
- {
- __int64 result; // qax@2
- unsigned __int64 v4; // qtt@2
- unsigned __int64 v5; // qax@3
- unsigned int v6; // ecx@3
- unsigned int v7; // ebx@3
- char v8; // cf@4
- char v9; // cf@4
- unsigned int v10; // eax@5
- unsigned __int64 v11; // qax@5
- unsigned int v12; // esi@5
- unsigned int v13; // ecx@5
- char v14; // cf@5
- if ( a3 )
- {
- v6 = a3;
- v7 = a2;
- v5 = a1;
- do
- {
- v8 = v6 & 1;
- v6 >>= 1;
- v7 = __RCR__(v7, v8);
- v9 = BYTE4(v5) & 1;
- HIDWORD(v5) >>= 1;
- LODWORD(v5) = __RCR__(v5, v9);
- }
- while ( v6 );
- v10 = v5 / v7;
- v12 = v10;
- v13 = a3 * v10;
- v11 = v10 * a2;
- v14 = v13 >= -HIDWORD(v11);
- HIDWORD(v11) += v13;
- if ( v14 || HIDWORD(v11) > HIDWORD(a1) || v11 > a1 )
- --v12;
- result = v12;
- }
- else
- {
- LODWORD(v4) = a1;
- HIDWORD(v4) = HIDWORD(a1) % a2;
- LODWORD(result) = v4 / a2;
- HIDWORD(result) = HIDWORD(a1) / a2;
- }
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement