Skip to content

Instantly share code, notes, and snippets.

@tiran
Created May 13, 2018 17:33
Show Gist options
  • Save tiran/5c0e3475aef3278f7960cf15ef9640b3 to your computer and use it in GitHub Desktop.
Save tiran/5c0e3475aef3278f7960cf15ef9640b3 to your computer and use it in GitHub Desktop.
CPython siphash24
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