Created
May 13, 2018 17:33
-
-
Save tiran/5c0e3475aef3278f7960cf15ef9640b3 to your computer and use it in GitHub Desktop.
CPython siphash24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 0000000000000000 <siphash24>: | |
| 0: 48 b8 61 72 65 6e 65 movabs $0x6c7967656e657261,%rax | |
| 7: 67 79 6c | |
| a: 53 push %rbx | |
| b: 48 bb 75 65 73 70 65 movabs $0x736f6d6570736575,%rbx | |
| 12: 6d 6f 73 | |
| 15: 48 31 fb xor %rdi,%rbx | |
| 18: 49 89 c9 mov %rcx,%r9 | |
| 1b: 48 31 c7 xor %rax,%rdi | |
| 1e: 49 bb 6d 6f 64 6e 61 movabs $0x646f72616e646f6d,%r11 | |
| 25: 72 6f 64 | |
| 28: 48 b8 73 65 74 79 62 movabs $0x7465646279746573,%rax | |
| 2f: 64 65 74 | |
| 32: 49 c1 e1 38 shl $0x38,%r9 | |
| 36: 49 31 f3 xor %rsi,%r11 | |
| 39: 48 31 c6 xor %rax,%rsi | |
| 3c: 48 83 f9 07 cmp $0x7,%rcx | |
| 40: 0f 8e 93 00 00 00 jle d9 <siphash24+0xd9> | |
| 46: 48 83 e9 08 sub $0x8,%rcx | |
| 4a: 49 89 ca mov %rcx,%r10 | |
| 4d: 49 c1 ea 03 shr $0x3,%r10 | |
| 51: 4e 8d 44 d2 08 lea 0x8(%rdx,%r10,8),%r8 | |
| 56: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) | |
| 5d: 00 00 00 | |
| 60: 48 8b 02 mov (%rdx),%rax | |
| 63: 4c 01 db add %r11,%rbx | |
| 66: 49 c1 c3 0d rol $0xd,%r11 | |
| 6a: 49 31 db xor %rbx,%r11 | |
| 6d: 48 c1 c3 20 rol $0x20,%rbx | |
| 71: 48 83 c2 08 add $0x8,%rdx | |
| 75: 48 31 c6 xor %rax,%rsi | |
| 78: 48 01 f7 add %rsi,%rdi | |
| 7b: 48 c1 c6 10 rol $0x10,%rsi | |
| 7f: 48 31 fe xor %rdi,%rsi | |
| 82: 4c 01 df add %r11,%rdi | |
| 85: 49 c1 c3 11 rol $0x11,%r11 | |
| 89: 48 01 f3 add %rsi,%rbx | |
| 8c: 48 c1 c6 15 rol $0x15,%rsi | |
| 90: 49 31 fb xor %rdi,%r11 | |
| 93: 48 31 de xor %rbx,%rsi | |
| 96: 48 c1 c7 20 rol $0x20,%rdi | |
| 9a: 4c 01 db add %r11,%rbx | |
| 9d: 48 01 f7 add %rsi,%rdi | |
| a0: 49 c1 c3 0d rol $0xd,%r11 | |
| a4: 48 c1 c6 10 rol $0x10,%rsi | |
| a8: 49 31 db xor %rbx,%r11 | |
| ab: 48 31 fe xor %rdi,%rsi | |
| ae: 48 c1 c3 20 rol $0x20,%rbx | |
| b2: 4c 01 df add %r11,%rdi | |
| b5: 48 01 f3 add %rsi,%rbx | |
| b8: 49 c1 c3 11 rol $0x11,%r11 | |
| bc: 48 c1 c6 15 rol $0x15,%rsi | |
| c0: 49 31 fb xor %rdi,%r11 | |
| c3: 48 c1 c7 20 rol $0x20,%rdi | |
| c7: 48 31 de xor %rbx,%rsi | |
| ca: 48 31 c3 xor %rax,%rbx | |
| cd: 4c 39 c2 cmp %r8,%rdx | |
| d0: 75 8e jne 60 <siphash24+0x60> | |
| d2: 49 f7 da neg %r10 | |
| d5: 4a 8d 0c d1 lea (%rcx,%r10,8),%rcx | |
| d9: 48 83 f9 07 cmp $0x7,%rcx | |
| dd: 48 c7 44 24 f8 00 00 movq $0x0,-0x8(%rsp) | |
| e4: 00 00 | |
| e6: 77 2b ja 113 <siphash24+0x113> | |
| e8: ff 24 cd 00 00 00 00 jmpq *0x0(,%rcx,8) | |
| ef: 90 nop | |
| f0: 0f b6 42 06 movzbl 0x6(%rdx),%eax | |
| f4: 88 44 24 fe mov %al,-0x2(%rsp) | |
| f8: 0f b6 42 05 movzbl 0x5(%rdx),%eax | |
| fc: 88 44 24 fd mov %al,-0x3(%rsp) | |
| 100: 0f b6 42 04 movzbl 0x4(%rdx),%eax | |
| 104: 88 44 24 fc mov %al,-0x4(%rsp) | |
| 108: 8b 02 mov (%rdx),%eax | |
| 10a: 89 44 24 f8 mov %eax,-0x8(%rsp) | |
| 10e: 4c 0b 4c 24 f8 or -0x8(%rsp),%r9 | |
| 113: 4c 31 ce xor %r9,%rsi | |
| 116: 4c 89 da mov %r11,%rdx | |
| 119: 4c 01 db add %r11,%rbx | |
| 11c: 48 01 f7 add %rsi,%rdi | |
| 11f: 48 c1 c6 10 rol $0x10,%rsi | |
| 123: 48 c1 c2 0d rol $0xd,%rdx | |
| 127: 48 89 f0 mov %rsi,%rax | |
| 12a: 48 31 da xor %rbx,%rdx | |
| 12d: 48 c1 c3 20 rol $0x20,%rbx | |
| 131: 48 31 f8 xor %rdi,%rax | |
| 134: 48 8d 0c 17 lea (%rdi,%rdx,1),%rcx | |
| 138: 48 c1 c2 11 rol $0x11,%rdx | |
| 13c: 48 8d 34 18 lea (%rax,%rbx,1),%rsi | |
| 140: 48 c1 c0 15 rol $0x15,%rax | |
| 144: 48 31 ca xor %rcx,%rdx | |
| 147: 48 c1 c1 20 rol $0x20,%rcx | |
| 14b: 48 31 f0 xor %rsi,%rax | |
| 14e: 48 01 d6 add %rdx,%rsi | |
| 151: 48 c1 c2 0d rol $0xd,%rdx | |
| 155: 48 01 c1 add %rax,%rcx | |
| 158: 48 c1 c0 10 rol $0x10,%rax | |
| 15c: 48 31 f2 xor %rsi,%rdx | |
| 15f: 48 31 c8 xor %rcx,%rax | |
| 162: 48 c1 c6 20 rol $0x20,%rsi | |
| 166: 48 01 d1 add %rdx,%rcx | |
| 169: 48 01 c6 add %rax,%rsi | |
| 16c: 48 c1 c2 11 rol $0x11,%rdx | |
| 170: 48 c1 c0 15 rol $0x15,%rax | |
| 174: 48 31 ca xor %rcx,%rdx | |
| 177: 48 31 f0 xor %rsi,%rax | |
| 17a: 48 c1 c1 20 rol $0x20,%rcx | |
| 17e: 4c 31 ce xor %r9,%rsi | |
| 181: 80 f1 ff xor $0xff,%cl | |
| 184: 48 01 d6 add %rdx,%rsi | |
| 187: 48 c1 c2 0d rol $0xd,%rdx | |
| 18b: 48 01 c1 add %rax,%rcx | |
| 18e: 48 31 f2 xor %rsi,%rdx | |
| 191: 48 c1 c0 10 rol $0x10,%rax | |
| 195: 48 c1 c6 20 rol $0x20,%rsi | |
| 199: 48 31 c8 xor %rcx,%rax | |
| 19c: 48 01 d1 add %rdx,%rcx | |
| 19f: 48 c1 c2 11 rol $0x11,%rdx | |
| 1a3: 48 01 c6 add %rax,%rsi | |
| 1a6: 48 31 ca xor %rcx,%rdx | |
| 1a9: 48 c1 c0 15 rol $0x15,%rax | |
| 1ad: 48 31 f0 xor %rsi,%rax | |
| 1b0: 48 c1 c1 20 rol $0x20,%rcx | |
| 1b4: 48 01 d6 add %rdx,%rsi | |
| 1b7: 48 c1 c2 0d rol $0xd,%rdx | |
| 1bb: 48 01 c1 add %rax,%rcx | |
| 1be: 48 c1 c0 10 rol $0x10,%rax | |
| 1c2: 48 31 f2 xor %rsi,%rdx | |
| 1c5: 48 31 c8 xor %rcx,%rax | |
| 1c8: 48 c1 c6 20 rol $0x20,%rsi | |
| 1cc: 48 01 d1 add %rdx,%rcx | |
| 1cf: 48 c1 c2 11 rol $0x11,%rdx | |
| 1d3: 48 01 c6 add %rax,%rsi | |
| 1d6: 48 31 ca xor %rcx,%rdx | |
| 1d9: 48 c1 c0 15 rol $0x15,%rax | |
| 1dd: 48 c1 c1 20 rol $0x20,%rcx | |
| 1e1: 48 31 f0 xor %rsi,%rax | |
| 1e4: 48 01 d6 add %rdx,%rsi | |
| 1e7: 48 c1 c2 0d rol $0xd,%rdx | |
| 1eb: 48 01 c1 add %rax,%rcx | |
| 1ee: 48 31 f2 xor %rsi,%rdx | |
| 1f1: 48 c1 c0 10 rol $0x10,%rax | |
| 1f5: 48 31 c8 xor %rcx,%rax | |
| 1f8: 48 c1 c6 20 rol $0x20,%rsi | |
| 1fc: 48 01 d1 add %rdx,%rcx | |
| 1ff: 48 c1 c2 11 rol $0x11,%rdx | |
| 203: 48 01 c6 add %rax,%rsi | |
| 206: 48 c1 c0 15 rol $0x15,%rax | |
| 20a: 48 31 ca xor %rcx,%rdx | |
| 20d: 48 31 f0 xor %rsi,%rax | |
| 210: 48 c1 c1 20 rol $0x20,%rcx | |
| 214: 48 01 d6 add %rdx,%rsi | |
| 217: 48 c1 c2 0d rol $0xd,%rdx | |
| 21b: 48 01 c1 add %rax,%rcx | |
| 21e: 48 31 f2 xor %rsi,%rdx | |
| 221: 48 c1 c0 10 rol $0x10,%rax | |
| 225: 48 8d 34 11 lea (%rcx,%rdx,1),%rsi | |
| 229: 48 31 c8 xor %rcx,%rax | |
| 22c: 48 c1 c2 11 rol $0x11,%rdx | |
| 230: 48 c1 c0 15 rol $0x15,%rax | |
| 234: 48 31 f2 xor %rsi,%rdx | |
| 237: 48 31 c2 xor %rax,%rdx | |
| 23a: 48 89 f0 mov %rsi,%rax | |
| 23d: 48 c1 c0 20 rol $0x20,%rax | |
| 241: 48 31 d0 xor %rdx,%rax | |
| 244: 5b pop %rbx | |
| 245: c3 retq | |
| 246: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) | |
| 24d: 00 00 00 | |
| 250: 0f b6 42 02 movzbl 0x2(%rdx),%eax | |
| 254: 88 44 24 fa mov %al,-0x6(%rsp) | |
| 258: 0f b6 42 01 movzbl 0x1(%rdx),%eax | |
| 25c: 88 44 24 f9 mov %al,-0x7(%rsp) | |
| 260: 0f b6 02 movzbl (%rdx),%eax | |
| 263: 88 44 24 f8 mov %al,-0x8(%rsp) | |
| 267: 4c 0b 4c 24 f8 or -0x8(%rsp),%r9 | |
| 26c: e9 a2 fe ff ff jmpq 113 <siphash24+0x113> | |
| 271: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) | |
| 276: 66 2e 0f 1f 84 00 00 nopw %cs:0x0(%rax,%rax,1) | |
| 27d: 00 00 00 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment