my_hash_sort_bin() before: 0000000000000230 : 230: 48 01 f2 add %rsi,%rdx 233: 48 39 d6 cmp %rdx,%rsi 236: 73 3f jae 277 238: 4d 8b 08 mov (%r8),%r9 23b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1) 240: 48 8b 39 mov (%rcx),%rdi 243: 0f b6 06 movzbl (%rsi),%eax 246: 48 83 c6 01 add $0x1,%rsi 24a: 49 89 fa mov %rdi,%r10 24d: 41 83 e2 3f and $0x3f,%r10d 251: 4d 01 d1 add %r10,%r9 254: 49 0f af c1 imul %r9,%rax 258: 49 89 f9 mov %rdi,%r9 25b: 49 c1 e1 08 shl $0x8,%r9 25f: 4c 01 c8 add %r9,%rax 262: 48 31 f8 xor %rdi,%rax 265: 48 89 01 mov %rax,(%rcx) 268: 4d 8b 08 mov (%r8),%r9 26b: 49 83 c1 03 add $0x3,%r9 26f: 48 39 d6 cmp %rdx,%rsi 272: 4d 89 08 mov %r9,(%r8) 275: 75 c9 jne 240 277: f3 c3 repz retq 279: 0f 1f 80 00 00 00 00 nopl 0x0(%rax) my_hash_sort_bin() after: 0000000000000010 : 10: 48 01 f2 add %rsi,%rdx 13: 48 39 d6 cmp %rdx,%rsi 16: 0f 83 c9 01 00 00 jae 1e5 1c: 48 8b 39 mov (%rcx),%rdi 1f: 0f b6 06 movzbl (%rsi),%eax 22: 49 89 f1 mov %rsi,%r9 25: 49 f7 d1 not %r9 28: 49 01 d1 add %rdx,%r9 2b: 49 89 fa mov %rdi,%r10 2e: 49 89 fb mov %rdi,%r11 31: 41 83 e1 03 and $0x3,%r9d 35: 41 83 e2 3f and $0x3f,%r10d 39: 4d 03 10 add (%r8),%r10 3c: 49 c1 e3 08 shl $0x8,%r11 40: 49 0f af c2 imul %r10,%rax 44: 4c 01 d8 add %r11,%rax 47: 4c 8d 5e 01 lea 0x1(%rsi),%r11 4b: 48 31 f8 xor %rdi,%rax 4e: 48 89 01 mov %rax,(%rcx) 51: 49 8b 38 mov (%r8),%rdi 54: 48 83 c7 03 add $0x3,%rdi 58: 49 39 d3 cmp %rdx,%r11 5b: 49 89 38 mov %rdi,(%r8) 5e: 0f 84 94 01 00 00 je 1f8 64: 4d 85 c9 test %r9,%r9 67: 0f 84 ac 00 00 00 je 119 6d: 49 83 f9 01 cmp $0x1,%r9 71: 74 6b je de 73: 49 83 f9 02 cmp $0x2,%r9 77: 74 33 je ac 79: 4c 8b 09 mov (%rcx),%r9 7c: 41 0f b6 03 movzbl (%r11),%eax 80: 4c 8d 5e 02 lea 0x2(%rsi),%r11 84: 4d 89 ca mov %r9,%r10 87: 41 83 e2 3f and $0x3f,%r10d 8b: 4c 01 d7 add %r10,%rdi 8e: 48 0f af c7 imul %rdi,%rax 92: 4c 89 cf mov %r9,%rdi 95: 48 c1 e7 08 shl $0x8,%rdi 99: 48 01 f8 add %rdi,%rax 9c: 4c 31 c8 xor %r9,%rax 9f: 48 89 01 mov %rax,(%rcx) a2: 49 8b 38 mov (%r8),%rdi a5: 48 83 c7 03 add $0x3,%rdi a9: 49 89 38 mov %rdi,(%r8) ac: 4c 8b 09 mov (%rcx),%r9 af: 41 0f b6 33 movzbl (%r11),%esi b3: 49 83 c3 01 add $0x1,%r11 b7: 4c 89 c8 mov %r9,%rax ba: 4d 89 ca mov %r9,%r10 bd: 83 e0 3f and $0x3f,%eax c0: 49 c1 e2 08 shl $0x8,%r10 c4: 48 01 c7 add %rax,%rdi c7: 48 0f af f7 imul %rdi,%rsi cb: 4c 01 d6 add %r10,%rsi ce: 4c 31 ce xor %r9,%rsi d1: 48 89 31 mov %rsi,(%rcx) d4: 49 8b 38 mov (%r8),%rdi d7: 48 83 c7 03 add $0x3,%rdi db: 49 89 38 mov %rdi,(%r8) de: 4c 8b 09 mov (%rcx),%r9 e1: 41 0f b6 33 movzbl (%r11),%esi e5: 49 83 c3 01 add $0x1,%r11 e9: 4c 89 c8 mov %r9,%rax ec: 83 e0 3f and $0x3f,%eax ef: 48 01 c7 add %rax,%rdi f2: 48 0f af f7 imul %rdi,%rsi f6: 4c 89 cf mov %r9,%rdi f9: 48 c1 e7 08 shl $0x8,%rdi fd: 48 01 fe add %rdi,%rsi 100: 4c 31 ce xor %r9,%rsi 103: 48 89 31 mov %rsi,(%rcx) 106: 49 8b 38 mov (%r8),%rdi 109: 48 83 c7 03 add $0x3,%rdi 10d: 49 39 d3 cmp %rdx,%r11 110: 49 89 38 mov %rdi,(%r8) 113: 0f 84 d7 00 00 00 je 1f0 119: 4c 8b 09 mov (%rcx),%r9 11c: 41 0f b6 33 movzbl (%r11),%esi 120: 4d 89 ca mov %r9,%r10 123: 4c 89 c8 mov %r9,%rax 126: 41 83 e2 3f and $0x3f,%r10d 12a: 48 c1 e0 08 shl $0x8,%rax 12e: 4c 01 d7 add %r10,%rdi 131: 48 0f af f7 imul %rdi,%rsi 135: 48 01 c6 add %rax,%rsi 138: 4c 31 ce xor %r9,%rsi 13b: 48 89 31 mov %rsi,(%rcx) 13e: 4d 8b 08 mov (%r8),%r9 141: 49 83 c1 03 add $0x3,%r9 145: 4d 89 08 mov %r9,(%r8) 148: 48 8b 39 mov (%rcx),%rdi 14b: 41 0f b6 73 01 movzbl 0x1(%r11),%esi 150: 49 89 fa mov %rdi,%r10 153: 48 89 f8 mov %rdi,%rax 156: 41 83 e2 3f and $0x3f,%r10d 15a: 48 c1 e0 08 shl $0x8,%rax 15e: 4d 01 d1 add %r10,%r9 161: 49 0f af f1 imul %r9,%rsi 165: 48 01 c6 add %rax,%rsi 168: 48 31 fe xor %rdi,%rsi 16b: 48 89 31 mov %rsi,(%rcx) 16e: 4d 8b 08 mov (%r8),%r9 171: 49 83 c1 03 add $0x3,%r9 175: 4d 89 08 mov %r9,(%r8) 178: 48 8b 39 mov (%rcx),%rdi 17b: 41 0f b6 73 02 movzbl 0x2(%r11),%esi 180: 49 89 fa mov %rdi,%r10 183: 48 89 f8 mov %rdi,%rax 186: 41 83 e2 3f and $0x3f,%r10d 18a: 48 c1 e0 08 shl $0x8,%rax 18e: 4d 01 d1 add %r10,%r9 191: 49 0f af f1 imul %r9,%rsi 195: 48 01 c6 add %rax,%rsi 198: 48 31 fe xor %rdi,%rsi 19b: 48 89 31 mov %rsi,(%rcx) 19e: 4d 8b 08 mov (%r8),%r9 1a1: 49 83 c1 03 add $0x3,%r9 1a5: 4d 89 08 mov %r9,(%r8) 1a8: 48 8b 39 mov (%rcx),%rdi 1ab: 41 0f b6 73 03 movzbl 0x3(%r11),%esi 1b0: 49 83 c3 04 add $0x4,%r11 1b4: 49 89 fa mov %rdi,%r10 1b7: 48 89 f8 mov %rdi,%rax 1ba: 41 83 e2 3f and $0x3f,%r10d 1be: 48 c1 e0 08 shl $0x8,%rax 1c2: 4d 01 d1 add %r10,%r9 1c5: 49 0f af f1 imul %r9,%rsi 1c9: 48 01 c6 add %rax,%rsi 1cc: 48 31 fe xor %rdi,%rsi 1cf: 48 89 31 mov %rsi,(%rcx) 1d2: 49 8b 38 mov (%r8),%rdi 1d5: 48 83 c7 03 add $0x3,%rdi 1d9: 49 39 d3 cmp %rdx,%r11 1dc: 49 89 38 mov %rdi,(%r8) 1df: 0f 85 34 ff ff ff jne 119 1e5: f3 c3 repz retq 1e7: 66 0f 1f 84 00 00 00 nopw 0x0(%rax,%rax,1) 1ee: 00 00 1f0: f3 c3 repz retq 1f2: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1) 1f8: 0f 1f 84 00 00 00 00 nopl 0x0(%rax,%rax,1) 1ff: 00 200: f3 c3 repz retq 202: 66 66 66 66 66 2e 0f data32 data32 data32 data32 nopw %cs:0x0(%rax,%rax,1) 209: 1f 84 00 00 00 00 00