Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static Result Block2(uint p0, uint p1) {
- p1 ^= p0;
- p0 = BitOperations.RotateLeft(p0, 20);
- p0 += p1;
- p1 = BitOperations.RotateLeft(p1, 9);
- p1 ^= p0;
- p0 = BitOperations.RotateLeft(p0, 27);
- p0 += p1;
- p1 = BitOperations.RotateLeft(p1, 19);
- return new(p0, p1);
- }
- static Result Block3(uint p0, uint p1) {
- p1 ^= p0;
- p0 = BitOperations.RotateLeft(p0, 20);
- p0 += p1;
- p1 = BitOperations.RotateLeft(p1, 9);
- p1 ^= p0;
- p0 = BitOperations.RotateLeft(p0, 27);
- p0 += p1;
- p1 = BitOperations.RotateLeft(p1, 19);
- return Result.From(p0, p1);
- }
- [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 8)]
- struct Result {
- uint Hi;
- uint Lo;
- internal static Result From(uint hi, uint lo) {
- ulong temp = (((ulong)hi) << 32) | lo;
- unsafe {
- return *(Result*)Unsafe.AsPointer(ref temp);
- }
- }
- public Result(uint hi, uint lo) {
- Hi = hi;
- Lo = lo;
- }
- }
- ---
- <Main>g__Block2|4_4β(UInt32, UInt32)
- L0000 push rax
- L0001 xor edx, ecx
- L0003 rol ecx, 0x14
- L0006 add ecx, edx
- L0008 rol edx, 9
- L000b xor edx, ecx
- L000d rol ecx, 0x1b
- L0010 add ecx, edx
- L0012 rol edx, 0x13
- L0015 mov [rsp], ecx
- L0018 mov [rsp+4], edx
- L001c mov rax, [rsp]
- L0020 add rsp, 8
- L0024 ret
- <Main>g__Block3|4_5β(UInt32, UInt32)
- L0000 xor edx, ecx
- L0002 rol ecx, 0x14
- L0005 add ecx, edx
- L0007 rol edx, 9
- L000a xor edx, ecx
- L000c rol ecx, 0x1b
- L000f add ecx, edx
- L0011 rol edx, 0x13
- L0014 mov eax, ecx
- L0016 shl rax, 0x20
- L001a mov edx, edx
- L001c or rax, rdx
- L001f ret
Advertisement
Add Comment
Please, Sign In to add comment