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