```c=
0000000000000380 <bn_to_string>:
380: e8 00 00 00 00 callq 385 <bn_to_string+0x5>
385: 48 b9 ab aa aa aa aa movabs $0xaaaaaaaaaaaaaaab,%rcx
38c: aa aa aa
38f: 89 f2 mov %esi,%edx
391: 55 push %rbp
392: 48 c1 e2 05 shl $0x5,%rdx
396: 48 89 d0 mov %rdx,%rax
399: 48 f7 e1 mul %rcx
39c: 48 89 e5 mov %rsp,%rbp
39f: 41 57 push %r15
3a1: 49 89 ff mov %rdi,%r15
3a4: 41 56 push %r14
3a6: 41 55 push %r13
3a8: 49 89 f5 mov %rsi,%r13
3ab: 41 54 push %r12
3ad: 48 d1 ea shr %rdx
3b0: 53 push %rbx
3b1: 48 89 f3 mov %rsi,%rbx
3b4: be c0 0c 00 00 mov $0xcc0,%esi
3b9: 48 c1 fb 20 sar $0x20,%rbx
3bd: 49 89 de mov %rbx,%r14
3c0: 49 01 d6 add %rdx,%r14
3c3: 48 83 ec 08 sub $0x8,%rsp
3c7: 4d 8d 4e 02 lea 0x2(%r14),%r9
3cb: 4c 89 cf mov %r9,%rdi
3ce: 4c 89 0c 24 mov %r9,(%rsp)
3d2: e8 00 00 00 00 callq 3d7 <bn_to_string+0x57>
3d7: 49 8d 56 01 lea 0x1(%r14),%rdx
3db: be 30 00 00 00 mov $0x30,%esi
3e0: 48 89 c7 mov %rax,%rdi
3e3: 49 89 c4 mov %rax,%r12
3e6: e8 00 00 00 00 callq 3eb <bn_to_string+0x6b>
3eb: 41 83 ed 01 sub $0x1,%r13d
3ef: 43 c6 44 34 01 00 movb $0x0,0x1(%r12,%r14,1)
3f5: 4c 8b 0c 24 mov (%rsp),%r9
3f9: 78 72 js 46d <bn_to_string+0xed>
3fb: 41 83 e9 02 sub $0x2,%r9d
3ff: 49 63 c5 movslq %r13d,%rax
402: 4d 8d 14 87 lea (%r15,%rax,4),%r10
406: 4d 63 d9 movslq %r9d,%r11
409: 41 b8 20 00 00 00 mov $0x20,%r8d
40f: bf 00 00 00 80 mov $0x80000000,%edi
414: 31 f6 xor %esi,%esi
416: 41 85 3a test %edi,(%r10)
419: 4b 8d 14 1c lea (%r12,%r11,1),%rdx
41d: 44 89 c9 mov %r9d,%ecx
420: 40 0f 95 c6 setne %sil
424: 45 85 c9 test %r9d,%r9d
427: 78 2e js 457 <bn_to_string+0xd7>
429: 0f b6 02 movzbl (%rdx),%eax
42c: 8d 04 46 lea (%rsi,%rax,2),%eax
42f: 31 f6 xor %esi,%esi
431: 44 8d 70 d0 lea -0x30(%rax),%r14d
435: 41 80 fe 39 cmp $0x39,%r14b
439: 40 0f 9f c6 setg %sil
43d: 83 e8 3a sub $0x3a,%eax
440: 41 80 fe 3a cmp $0x3a,%r14b
444: 41 0f 4c c6 cmovl %r14d,%eax
448: 83 e9 01 sub $0x1,%ecx
44b: 48 83 ea 01 sub $0x1,%rdx
44f: 88 42 01 mov %al,0x1(%rdx)
452: 83 f9 ff cmp $0xffffffff,%ecx
455: 75 d2 jne 429 <bn_to_string+0xa9>
457: d1 ef shr %edi
459: 41 83 e8 01 sub $0x1,%r8d
45d: 75 b5 jne 414 <bn_to_string+0x94>
45f: 41 83 ed 01 sub $0x1,%r13d
463: 49 83 ea 04 sub $0x4,%r10
467: 41 83 fd ff cmp $0xffffffff,%r13d
46b: 75 9c jne 409 <bn_to_string+0x89>
46d: 41 80 3c 24 30 cmpb $0x30,(%r12)
472: 4d 89 e5 mov %r12,%r13
475: 74 0a je 481 <bn_to_string+0x101>
477: eb 11 jmp 48a <bn_to_string+0x10a>
479: 49 83 c5 01 add $0x1,%r13
47d: 3c 30 cmp $0x30,%al
47f: 75 09 jne 48a <bn_to_string+0x10a>
481: 41 0f b6 45 01 movzbl 0x1(%r13),%eax
486: 84 c0 test %al,%al
488: 75 ef jne 479 <bn_to_string+0xf9>
48a: 85 db test %ebx,%ebx
48c: 74 09 je 497 <bn_to_string+0x117>
48e: 41 c6 45 ff 2d movb $0x2d,-0x1(%r13)
493: 49 83 ed 01 sub $0x1,%r13
497: 4c 89 ef mov %r13,%rdi
49a: e8 00 00 00 00 callq 49f <bn_to_string+0x11f>
49f: 4c 89 ee mov %r13,%rsi
4a2: 4c 89 e7 mov %r12,%rdi
4a5: 48 8d 50 01 lea 0x1(%rax),%rdx
4a9: e8 00 00 00 00 callq 4ae <bn_to_string+0x12e>
4ae: 48 83 c4 08 add $0x8,%rsp
4b2: 5b pop %rbx
4b3: 41 5c pop %r12
4b5: 41 5d pop %r13
4b7: 41 5e pop %r14
4b9: 41 5f pop %r15
4bb: 5d pop %rbp
4bc: e9 00 00 00 00 jmpq 4c1 <bn_to_string+0x141>
4c1: 66 66 2e 0f 1f 84 00 data16 nopw %cs:0x0(%rax,%rax,1)
4c8: 00 00 00 00
4cc: 0f 1f 40 00 nopl 0x0(%rax)
```
```c=
0000000000001289 <bn_to_str>:
1289: f3 0f 1e fa endbr64
128d: 55 push %rbp
128e: 48 89 e5 mov %rsp,%rbp
1291: 48 83 ec 50 sub $0x50,%rsp
1295: 48 89 7d b8 mov %rdi,-0x48(%rbp)
1299: 89 75 b4 mov %esi,-0x4c(%rbp)
129c: 89 55 b0 mov %edx,-0x50(%rbp)
129f: 48 8b 45 b8 mov -0x48(%rbp),%rax
12a3: 48 89 45 e8 mov %rax,-0x18(%rbp)
12a7: 8b 45 b4 mov -0x4c(%rbp),%eax
12aa: 48 c1 e0 05 shl $0x5,%rax
12ae: 48 ba ab aa aa aa aa movabs $0xaaaaaaaaaaaaaaab,%rdx
12b5: aa aa aa
12b8: 48 f7 e2 mul %rdx
12bb: 48 d1 ea shr %rdx
12be: 8b 45 b0 mov -0x50(%rbp),%eax
12c1: 48 98 cltq
12c3: 48 01 d0 add %rdx,%rax
12c6: 48 83 c0 02 add $0x2,%rax
12ca: 48 89 45 f0 mov %rax,-0x10(%rbp)
12ce: 48 8b 45 f0 mov -0x10(%rbp),%rax
12d2: 48 89 c7 mov %rax,%rdi
12d5: e8 76 fe ff ff callq 1150 <malloc@plt>
12da: 48 89 45 f8 mov %rax,-0x8(%rbp)
12de: 48 8b 45 f8 mov -0x8(%rbp),%rax
12e2: 48 89 45 e0 mov %rax,-0x20(%rbp)
12e6: 48 8b 45 f0 mov -0x10(%rbp),%rax
12ea: 48 8d 50 ff lea -0x1(%rax),%rdx
12ee: 48 8b 45 f8 mov -0x8(%rbp),%rax
12f2: be 30 00 00 00 mov $0x30,%esi
12f7: 48 89 c7 mov %rax,%rdi
12fa: e8 21 fe ff ff callq 1120 <memset@plt>
12ff: 48 8b 45 f0 mov -0x10(%rbp),%rax
1303: 48 8d 50 ff lea -0x1(%rax),%rdx
1307: 48 8b 45 f8 mov -0x8(%rbp),%rax
130b: 48 01 d0 add %rdx,%rax
130e: c6 00 00 movb $0x0,(%rax)
1311: 48 8b 45 e8 mov -0x18(%rbp),%rax
1315: 8b 00 mov (%rax),%eax
1317: 89 45 dc mov %eax,-0x24(%rbp)
131a: 8b 45 b4 mov -0x4c(%rbp),%eax
131d: 83 e8 01 sub $0x1,%eax
1320: 89 45 cc mov %eax,-0x34(%rbp)
1323: e9 e2 00 00 00 jmpq 140a <bn_to_str+0x181>
1328: c7 45 d0 00 00 00 80 movl $0x80000000,-0x30(%rbp)
132f: e9 c8 00 00 00 jmpq 13fc <bn_to_str+0x173>
1334: 8b 45 cc mov -0x34(%rbp),%eax
1337: 48 98 cltq
1339: 48 8d 14 85 00 00 00 lea 0x0(,%rax,4),%rdx
1340: 00
1341: 48 8b 45 e8 mov -0x18(%rbp),%rax
1345: 48 01 d0 add %rdx,%rax
1348: 8b 00 mov (%rax),%eax
134a: 23 45 d0 and -0x30(%rbp),%eax
134d: 85 c0 test %eax,%eax
134f: 0f 95 c0 setne %al
1352: 0f b6 c0 movzbl %al,%eax
1355: 89 45 d4 mov %eax,-0x2c(%rbp)
1358: 48 8b 45 f0 mov -0x10(%rbp),%rax
135c: 83 e8 02 sub $0x2,%eax
135f: 89 45 d8 mov %eax,-0x28(%rbp)
1362: e9 88 00 00 00 jmpq 13ef <bn_to_str+0x166>
1367: 8b 45 d8 mov -0x28(%rbp),%eax
136a: 48 63 d0 movslq %eax,%rdx
136d: 48 8b 45 f8 mov -0x8(%rbp),%rax
1371: 48 01 d0 add %rdx,%rax
1374: 0f b6 00 movzbl (%rax),%eax
1377: 89 c1 mov %eax,%ecx
1379: 8b 45 d8 mov -0x28(%rbp),%eax
137c: 48 63 d0 movslq %eax,%rdx
137f: 48 8b 45 f8 mov -0x8(%rbp),%rax
1383: 48 01 d0 add %rdx,%rax
1386: 0f b6 00 movzbl (%rax),%eax
1389: 89 c2 mov %eax,%edx
138b: 8b 45 d4 mov -0x2c(%rbp),%eax
138e: 01 d0 add %edx,%eax
1390: 01 c8 add %ecx,%eax
1392: 8d 48 d0 lea -0x30(%rax),%ecx
1395: 8b 45 d8 mov -0x28(%rbp),%eax
1398: 48 63 d0 movslq %eax,%rdx
139b: 48 8b 45 f8 mov -0x8(%rbp),%rax
139f: 48 01 d0 add %rdx,%rax
13a2: 89 ca mov %ecx,%edx
13a4: 88 10 mov %dl,(%rax)
13a6: 8b 45 d8 mov -0x28(%rbp),%eax
13a9: 48 63 d0 movslq %eax,%rdx
13ac: 48 8b 45 f8 mov -0x8(%rbp),%rax
13b0: 48 01 d0 add %rdx,%rax
13b3: 0f b6 00 movzbl (%rax),%eax
13b6: 3c 39 cmp $0x39,%al
13b8: 0f 9f c0 setg %al
13bb: 0f b6 c0 movzbl %al,%eax
13be: 89 45 d4 mov %eax,-0x2c(%rbp)
13c1: 83 7d d4 00 cmpl $0x0,-0x2c(%rbp)
13c5: 74 24 je 13eb <bn_to_str+0x162>
13c7: 8b 45 d8 mov -0x28(%rbp),%eax
13ca: 48 63 d0 movslq %eax,%rdx
13cd: 48 8b 45 f8 mov -0x8(%rbp),%rax
13d1: 48 01 d0 add %rdx,%rax
13d4: 0f b6 00 movzbl (%rax),%eax
13d7: 8d 48 f6 lea -0xa(%rax),%ecx
13da: 8b 45 d8 mov -0x28(%rbp),%eax
13dd: 48 63 d0 movslq %eax,%rdx
13e0: 48 8b 45 f8 mov -0x8(%rbp),%rax
13e4: 48 01 d0 add %rdx,%rax
13e7: 89 ca mov %ecx,%edx
13e9: 88 10 mov %dl,(%rax)
13eb: 83 6d d8 01 subl $0x1,-0x28(%rbp)
13ef: 83 7d d8 00 cmpl $0x0,-0x28(%rbp)
13f3: 0f 89 6e ff ff ff jns 1367 <bn_to_str+0xde>
13f9: d1 6d d0 shrl -0x30(%rbp)
13fc: 83 7d d0 00 cmpl $0x0,-0x30(%rbp)
1400: 0f 85 2e ff ff ff jne 1334 <bn_to_str+0xab>
1406: 83 6d cc 01 subl $0x1,-0x34(%rbp)
140a: 83 7d cc 00 cmpl $0x0,-0x34(%rbp)
140e: 0f 89 14 ff ff ff jns 1328 <bn_to_str+0x9f>
1414: eb 05 jmp 141b <bn_to_str+0x192>
1416: 48 83 45 e0 01 addq $0x1,-0x20(%rbp)
141b: 48 8b 45 e0 mov -0x20(%rbp),%rax
141f: 0f b6 00 movzbl (%rax),%eax
1422: 3c 30 cmp $0x30,%al
1424: 75 0f jne 1435 <bn_to_str+0x1ac>
1426: 48 8b 45 e0 mov -0x20(%rbp),%rax
142a: 48 83 c0 01 add $0x1,%rax
142e: 0f b6 00 movzbl (%rax),%eax
1431: 84 c0 test %al,%al
1433: 75 e1 jne 1416 <bn_to_str+0x18d>
1435: 83 7d b0 00 cmpl $0x0,-0x50(%rbp)
1439: 74 0c je 1447 <bn_to_str+0x1be>
143b: 48 83 6d e0 01 subq $0x1,-0x20(%rbp)
1440: 48 8b 45 e0 mov -0x20(%rbp),%rax
1444: c6 00 2d movb $0x2d,(%rax)
1447: 48 8b 45 e0 mov -0x20(%rbp),%rax
144b: 48 89 c7 mov %rax,%rdi
144e: e8 9d fc ff ff callq 10f0 <strlen@plt>
1453: 48 8d 50 01 lea 0x1(%rax),%rdx
1457: 48 8b 4d e0 mov -0x20(%rbp),%rcx
145b: 48 8b 45 f8 mov -0x8(%rbp),%rax
145f: 48 89 ce mov %rcx,%rsi
1462: 48 89 c7 mov %rax,%rdi
1465: e8 f6 fc ff ff callq 1160 <memmove@plt>
146a: 48 8b 45 f8 mov -0x8(%rbp),%rax
146e: c9 leaveq
146f: c3 retq
```