Sorted summary for file /box/solution-bin ---------------------------------------------- 48.18 /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:31 44.97 /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:29 1.39 /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:42 0.73 /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:40 0.65 /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:15 0.64 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/iter/range.rs:772 0.60 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/index.rs:278 0.60 /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:41 0.54 /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:0 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (13279 samples, percent: local period) --------------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 0000000000014d80 : : 6 use std::io::Read; : : 8 fn main() { 0 : 14d80: push rbp 0 : 14d81: mov rbp,rsp 0 : 14d84: push r15 0 : 14d86: push r14 0 : 14d88: push r13 0 : 14d8a: push r12 0 : 14d8c: push rbx 0 : 14d8d: sub rsp,0x78 0 : 14d91: mov QWORD PTR [rbp-0x88],0x0 0 : 14d9c: mov QWORD PTR [rbp-0x80],0x1 0 : 14da4: mov QWORD PTR [rbp-0x78],0x0 : 20 let mut input = String::new(); : 21 std::io::stdin().read_to_string(&mut input).unwrap(); 0 : 14dac: call QWORD PTR [rip+0x421b6] # 56f68 <_DYNAMIC+0x250> 0 : 14db2: mov QWORD PTR [rbp-0x68],rax 0 : 14db6: lea rdi,[rbp-0x68] 0 : 14dba: lea rsi,[rbp-0x88] 0 : 14dc1: call QWORD PTR [rip+0x421a9] # 56f70 <_DYNAMIC+0x258> 0 : 14dc7: cmp rax,0x1 0 : 14dcb: je 1585b 0 : 14dd1: mov r13,QWORD PTR [rbp-0x80] 0 : 14dd5: mov r15,QWORD PTR [rbp-0x78] 0 : 14dd9: xor ebx,ebx 0 : 14ddb: lea rdi,[rip+0x4012e] # 54f10 <__frame_dummy_init_array_entry+0xb0> 0 : 14de2: movabs r14,0x100003600 0 : 14dec: mov rdx,r15 0 : 14def: mov r8,r13 0 : 14df2: xor esi,esi 0 : 14df4: jmp 14e10 0 : 14df6: mov bl,0x1 0 : 14df8: mov r8,rcx 0 : 14dfb: mov sil,0x1 0 : 14dfe: mov rax,rdx 0 : 14e01: test rax,rax 0 : 14e04: jne 14e65 0 : 14e06: cs nop WORD PTR [rax+rax*1+0x0] 0 : 14e10: test sil,0x1 0 : 14e14: jne 158bd 0 : 14e1a: test rdx,rdx 0 : 14e1d: je 158bd 0 : 14e23: mov rcx,r8 0 : 14e26: xor eax,eax 0 : 14e28: jmp 14e38 0 : 14e2a: nop WORD PTR [rax+rax*1+0x0] 0 : 14e30: inc rax 0 : 14e33: cmp rdx,rax 0 : 14e36: je 14df6 0 : 14e38: movzx esi,BYTE PTR [rcx+rax*1] 0 : 14e3c: cmp rsi,0x20 0 : 14e40: ja 14e30 0 : 14e42: bt r14,rsi 0 : 14e46: jae 14e30 0 : 14e48: mov r15,rax 0 : 14e4b: not r15 0 : 14e4e: add r15,rdx 0 : 14e51: lea r13,[rcx+rax*1] 0 : 14e55: inc r13 0 : 14e58: xor esi,esi 0 : 14e5a: mov rdx,r15 0 : 14e5d: mov r8,r13 0 : 14e60: test rax,rax 0 : 14e63: je 14e10 0 : 14e65: movzx esi,BYTE PTR [rcx] 0 : 14e68: cmp rax,0x1 0 : 14e6c: jne 14e82 0 : 14e6e: mov dl,0x1 0 : 14e70: cmp esi,0x2b 0 : 14e73: je 15819 0 : 14e79: cmp esi,0x2d 0 : 14e7c: je 15819 0 : 14e82: xor edi,edi 0 : 14e84: cmp esi,0x2b 0 : 14e87: sete dil 0 : 14e8b: mov rdx,rax 0 : 14e8e: sub rdx,rdi 0 : 14e91: add rcx,rdi 0 : 14e94: mov rsi,rdi 0 : 14e97: neg rsi 0 : 14e9a: cmp rdx,0x11 0 : 14e9e: jae 14ee7 0 : 14ea0: test rdx,rdx 0 : 14ea3: je 14f36 0 : 14ea9: add rsi,rax 0 : 14eac: neg rsi 0 : 14eaf: xor eax,eax 0 : 14eb1: xor edx,edx 0 : 14eb3: data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] 0 : 14ec0: movzx edi,BYTE PTR [rcx+rdx*1] 0 : 14ec4: add edi,0xffffffd0 0 : 14ec7: cmp edi,0x9 0 : 14eca: ja 158d7 0 : 14ed0: lea rax,[rax+rax*4] 0 : 14ed4: mov edi,edi 0 : 14ed6: lea rax,[rdi+rax*2] 0 : 14eda: inc rdx 0 : 14edd: mov rdi,rsi 0 : 14ee0: add rdi,rdx 0 : 14ee3: jne 14ec0 0 : 14ee5: jmp 14f38 0 : 14ee7: add rsi,rax 0 : 14eea: neg rsi 0 : 14eed: xor eax,eax 0 : 14eef: mov edi,0xa 0 : 14ef4: xor r8d,r8d 0 : 14ef7: nop WORD PTR [rax+rax*1+0x0] 0 : 14f00: mov rdx,rsi 0 : 14f03: add rdx,r8 0 : 14f06: je 14f38 0 : 14f08: mul rdi 0 : 14f0b: movzx r9d,BYTE PTR [rcx+r8*1] 0 : 14f10: jo 1580c 0 : 14f16: add r9d,0xffffffd0 0 : 14f1a: cmp r9d,0xa 0 : 14f1e: jae 158d7 0 : 14f24: mov edx,r9d 0 : 14f27: inc r8 0 : 14f2a: add rax,rdx 0 : 14f2d: jae 14f00 0 : 14f2f: mov dl,0x2 0 : 14f31: jmp 15819 0 : 14f36: xor eax,eax 0 : 14f38: lea rdi,[rip+0x40001] # 54f40 <__frame_dummy_init_array_entry+0xe0> 0 : 14f3f: mov rsi,r15 0 : 14f42: mov r9,r13 0 : 14f45: mov r8d,ebx 0 : 14f48: jmp 14f60 0 : 14f4a: mov bl,0x1 0 : 14f4c: mov r9,rcx 0 : 14f4f: mov r8b,0x1 0 : 14f52: mov rdx,rsi 0 : 14f55: test rdx,rdx 0 : 14f58: jne 14fb7 0 : 14f5a: nop WORD PTR [rax+rax*1+0x0] 0 : 14f60: test r8b,0x1 0 : 14f64: jne 158bd 0 : 14f6a: test rsi,rsi 0 : 14f6d: je 158bd 0 : 14f73: mov rcx,r9 0 : 14f76: xor edx,edx 0 : 14f78: jmp 14f88 0 : 14f7a: nop WORD PTR [rax+rax*1+0x0] 0 : 14f80: inc rdx 0 : 14f83: cmp rsi,rdx 0 : 14f86: je 14f4a 0 : 14f88: movzx r8d,BYTE PTR [rcx+rdx*1] 0 : 14f8d: cmp r8,0x20 0 : 14f91: ja 14f80 0 : 14f93: bt r14,r8 0 : 14f97: jae 14f80 0 : 14f99: mov r15,rdx 0 : 14f9c: not r15 0 : 14f9f: add r15,rsi 0 : 14fa2: lea r13,[rcx+rdx*1] 0 : 14fa6: inc r13 0 : 14fa9: xor r8d,r8d 0 : 14fac: mov rsi,r15 0 : 14faf: mov r9,r13 0 : 14fb2: test rdx,rdx 0 : 14fb5: je 14f60 0 : 14fb7: movzx edi,BYTE PTR [rcx] 0 : 14fba: cmp rdx,0x1 0 : 14fbe: jne 14fd5 0 : 14fc0: mov sil,0x1 0 : 14fc3: cmp edi,0x2b 0 : 14fc6: je 15831 0 : 14fcc: cmp edi,0x2d 0 : 14fcf: je 15831 0 : 14fd5: xor esi,esi 0 : 14fd7: cmp edi,0x2b 0 : 14fda: sete sil 0 : 14fde: mov rdi,rdx 0 : 14fe1: sub rdi,rsi 0 : 14fe4: add rcx,rsi 0 : 14fe7: neg rsi 0 : 14fea: cmp rdi,0x11 0 : 14fee: mov QWORD PTR [rbp-0x40],rax 0 : 14ff2: jae 15037 0 : 14ff4: test rdi,rdi 0 : 14ff7: je 15090 0 : 14ffd: add rsi,rdx 0 : 15000: neg rsi 0 : 15003: xor r12d,r12d 0 : 15006: xor edx,edx 0 : 15008: nop DWORD PTR [rax+rax*1+0x0] 0 : 15010: movzx edi,BYTE PTR [rcx+rdx*1] 0 : 15014: add edi,0xffffffd0 0 : 15017: cmp edi,0x9 0 : 1501a: ja 158de 0 : 15020: lea r8,[r12+r12*4] 0 : 15024: mov edi,edi 0 : 15026: lea r12,[rdi+r8*2] 0 : 1502a: inc rdx 0 : 1502d: mov rdi,rsi 0 : 15030: add rdi,rdx 0 : 15033: jne 15010 0 : 15035: jmp 15093 0 : 15037: add rsi,rdx 0 : 1503a: neg rsi 0 : 1503d: xor r12d,r12d 0 : 15040: mov edi,0xa 0 : 15045: xor r8d,r8d 0 : 15048: nop DWORD PTR [rax+rax*1+0x0] 0 : 15050: mov rax,rsi 0 : 15053: add rax,r8 0 : 15056: je 1508a 0 : 15058: mov rax,r12 0 : 1505b: mul rdi 0 : 1505e: movzx edx,BYTE PTR [rcx+r8*1] 0 : 15063: jo 15825 0 : 15069: add edx,0xffffffd0 0 : 1506c: cmp edx,0xa 0 : 1506f: jae 158de 0 : 15075: mov r12,rax 0 : 15078: mov eax,edx 0 : 1507a: inc r8 0 : 1507d: add r12,rax 0 : 15080: jae 15050 0 : 15082: mov sil,0x2 0 : 15085: jmp 15831 0 : 1508a: mov rax,QWORD PTR [rbp-0x40] 0 : 1508e: jmp 15093 0 : 15090: xor r12d,r12d 0 : 15093: movabs rdx,0x7ffffffffffffff9 0 : 1509d: lea rsi,[rax*8+0x0] 0 : 150a5: mov rcx,rax 0 : 150a8: shr rcx,0x3d 0 : 150ac: setne cl 0 : 150af: cmp rsi,rdx 0 : 150b2: setae dl 0 : 150b5: or dl,cl 0 : 150b7: je 150c6 0 : 150b9: xor edi,edi 0 : 150bb: call QWORD PTR [rip+0x41eb7] # 56f78 <_DYNAMIC+0x260> 0 : 150c1: jmp 158d5 0 : 150c6: test rsi,rsi 0 : 150c9: je 15108 0 : 150cb: mov QWORD PTR [rbp-0x38],rsi 0 : 150cf: call QWORD PTR [rip+0x41eab] # 56f80 <_DYNAMIC+0x268> 0 : 150d5: mov esi,0x8 0 : 150da: mov rdi,QWORD PTR [rbp-0x38] 0 : 150de: call QWORD PTR [rip+0x41ea4] # 56f88 <_DYNAMIC+0x270> 0 : 150e4: mov edi,0x8 0 : 150e9: mov rsi,QWORD PTR [rbp-0x38] 0 : 150ed: mov QWORD PTR [rbp-0x60],rax 0 : 150f1: test rax,rax 0 : 150f4: je 150bb 0 : 150f6: mov rax,QWORD PTR [rbp-0x40] 0 : 150fa: mov QWORD PTR [rbp-0x30],rax 0 : 150fe: test rax,rax 0 : 15101: jne 15122 0 : 15103: jmp 1529c 0 : 15108: mov ecx,0x8 0 : 1510d: mov QWORD PTR [rbp-0x60],rcx 0 : 15111: mov QWORD PTR [rbp-0x30],0x0 0 : 15119: test rax,rax 0 : 1511c: je 1529c 0 : 15122: xor esi,esi 0 : 15124: mov ecx,0xa 0 : 15129: jmp 15148 0 : 1512b: nop DWORD PTR [rax+rax*1+0x0] 0 : 15130: mov rdx,rax 0 : 15133: mov rax,QWORD PTR [rbp-0x40] 0 : 15137: mov r8,QWORD PTR [rbp-0x60] 0 : 1513b: mov QWORD PTR [r8+rdi*8],rdx 0 : 1513f: cmp rsi,rax 0 : 15142: je 1529c 0 : 15148: mov rdi,rsi 0 : 1514b: inc rsi 0 : 1514e: mov r9,r15 0 : 15151: mov r11,r13 0 : 15154: mov r10d,ebx 0 : 15157: jmp 15170 0 : 15159: mov bl,0x1 0 : 1515b: mov r11,r8 0 : 1515e: mov r10b,0x1 0 : 15161: mov rdx,r9 0 : 15164: test rdx,rdx 0 : 15167: jne 151c7 0 : 15169: nop DWORD PTR [rax+0x0] 0 : 15170: test r10b,0x1 0 : 15174: jne 15885 0 : 1517a: test r9,r9 0 : 1517d: je 15885 0 : 15183: mov r8,r11 0 : 15186: xor edx,edx 0 : 15188: jmp 15198 0 : 1518a: nop WORD PTR [rax+rax*1+0x0] 0 : 15190: inc rdx 0 : 15193: cmp r9,rdx 0 : 15196: je 15159 0 : 15198: movzx r10d,BYTE PTR [r8+rdx*1] 0 : 1519d: cmp r10,0x20 0 : 151a1: ja 15190 0 : 151a3: bt r14,r10 0 : 151a7: jae 15190 0 : 151a9: mov r15,rdx 0 : 151ac: not r15 0 : 151af: add r15,r9 0 : 151b2: lea r13,[r8+rdx*1] 0 : 151b6: inc r13 1 : 151b9: xor r10d,r10d 0 : 151bc: mov r9,r15 0 : 151bf: mov r11,r13 0 : 151c2: test rdx,rdx 0 : 151c5: je 15170 0 : 151c7: movzx r9d,BYTE PTR [r8] 0 : 151cb: cmp rdx,0x1 0 : 151cf: jne 151e5 0 : 151d1: cmp r9d,0x2b 0 : 151d5: je 15898 0 : 151db: cmp r9d,0x2d 0 : 151df: je 15898 0 : 151e5: xor r11d,r11d 0 : 151e8: cmp r9d,0x2b 0 : 151ec: sete r11b 0 : 151f0: mov r10,rdx 0 : 151f3: sub r10,r11 0 : 151f6: add r8,r11 0 : 151f9: mov r9,r11 0 : 151fc: neg r9 0 : 151ff: cmp r10,0x11 0 : 15203: jae 15250 0 : 15205: test r10,r10 0 : 15208: je 15295 0 : 1520e: add r9,rdx 0 : 15211: neg r9 0 : 15214: xor r10d,r10d 0 : 15217: xor edx,edx 0 : 15219: nop DWORD PTR [rax+0x0] 0 : 15220: movzx r11d,BYTE PTR [r8+r10*1] 0 : 15225: add r11d,0xffffffd0 0 : 15229: cmp r11d,0x9 0 : 1522d: ja 15898 0 : 15233: lea rdx,[rdx+rdx*4] 0 : 15237: mov r11d,r11d 0 : 1523a: lea rdx,[r11+rdx*2] 0 : 1523e: inc r10 0 : 15241: mov r11,r9 0 : 15244: add r11,r10 0 : 15247: jne 15220 0 : 15249: jmp 15137 0 : 1524e: xchg ax,ax 0 : 15250: add r9,rdx 0 : 15253: neg r9 0 : 15256: xor r10d,r10d 0 : 15259: xor eax,eax 0 : 1525b: nop DWORD PTR [rax+rax*1+0x0] 0 : 15260: mov rdx,r9 0 : 15263: add rdx,r10 0 : 15266: je 15130 0 : 1526c: mul rcx 0 : 1526f: movzx edx,BYTE PTR [r8+r10*1] 0 : 15274: jo 1554c 0 : 1527a: add edx,0xffffffd0 2 : 1527d: cmp edx,0xa 0 : 15280: jae 15898 0 : 15286: mov edx,edx 0 : 15288: inc r10 0 : 1528b: add rax,rdx 2 : 1528e: jae 15260 0 : 15290: jmp 15558 0 : 15295: xor edx,edx 0 : 15297: jmp 15137 0 : 1529c: movabs rcx,0x2000000000000000 0 : 152a6: lea rsi,[r12*8+0x0] 0 : 152ae: cmp r12,rcx 0 : 152b1: setae cl 0 : 152b4: movabs rdx,0x7ffffffffffffff9 0 : 152be: cmp rsi,rdx 0 : 152c1: setae dl 0 : 152c4: or dl,cl 0 : 152c6: je 152d5 0 : 152c8: xor edi,edi 0 : 152ca: call QWORD PTR [rip+0x41ca8] # 56f78 <_DYNAMIC+0x260> 0 : 152d0: jmp 158d5 0 : 152d5: test rsi,rsi 0 : 152d8: je 1531b 0 : 152da: call QWORD PTR [rip+0x41ca0] # 56f80 <_DYNAMIC+0x268> 0 : 152e0: mov esi,0x8 0 : 152e5: lea rdi,[r12*8+0x0] 0 : 152ed: call QWORD PTR [rip+0x41c95] # 56f88 <_DYNAMIC+0x270> 0 : 152f3: mov edi,0x8 0 : 152f8: lea rsi,[r12*8+0x0] 0 : 15300: mov QWORD PTR [rbp-0x38],rax 0 : 15304: test rax,rax 0 : 15307: je 152ca 0 : 15309: mov QWORD PTR [rbp-0x58],r12 0 : 1530d: mov rax,QWORD PTR [rbp-0x40] 0 : 15311: test r12,r12 0 : 15314: jne 15335 0 : 15316: jmp 154ac 0 : 1531b: mov ecx,0x8 0 : 15320: mov QWORD PTR [rbp-0x38],rcx 0 : 15324: mov QWORD PTR [rbp-0x58],0x0 0 : 1532c: test r12,r12 0 : 1532f: je 154ac 0 : 15335: xor esi,esi 0 : 15337: mov ecx,0xa 0 : 1533c: jmp 15358 0 : 1533e: xchg ax,ax 0 : 15340: mov rdx,rax 0 : 15343: mov rax,QWORD PTR [rbp-0x40] 0 : 15347: mov r8,QWORD PTR [rbp-0x38] 0 : 1534b: mov QWORD PTR [r8+rdi*8],rdx 0 : 1534f: cmp rsi,r12 0 : 15352: je 154ac 0 : 15358: mov rdi,rsi 0 : 1535b: inc rsi 0 : 1535e: mov r9,r15 0 : 15361: mov r11,r13 0 : 15364: mov r10d,ebx 0 : 15367: jmp 15380 0 : 15369: mov bl,0x1 0 : 1536b: mov r11,r8 0 : 1536e: mov r10b,0x1 0 : 15371: mov rdx,r9 0 : 15374: test rdx,rdx 0 : 15377: jne 153d7 0 : 15379: nop DWORD PTR [rax+0x0] 0 : 15380: test r10b,0x1 0 : 15384: jne 1589f 0 : 1538a: test r9,r9 0 : 1538d: je 1589f 0 : 15393: mov r8,r11 0 : 15396: xor edx,edx 0 : 15398: jmp 153a8 0 : 1539a: nop WORD PTR [rax+rax*1+0x0] 0 : 153a0: inc rdx 0 : 153a3: cmp r9,rdx 0 : 153a6: je 15369 0 : 153a8: movzx r10d,BYTE PTR [r8+rdx*1] 0 : 153ad: cmp r10,0x20 2 : 153b1: ja 153a0 0 : 153b3: bt r14,r10 0 : 153b7: jae 153a0 0 : 153b9: mov r15,rdx 1 : 153bc: not r15 0 : 153bf: add r15,r9 0 : 153c2: lea r13,[r8+rdx*1] 0 : 153c6: inc r13 0 : 153c9: xor r10d,r10d 0 : 153cc: mov r9,r15 0 : 153cf: mov r11,r13 0 : 153d2: test rdx,rdx 0 : 153d5: je 15380 0 : 153d7: movzx r9d,BYTE PTR [r8] 0 : 153db: cmp rdx,0x1 0 : 153df: jne 153f5 0 : 153e1: cmp r9d,0x2b 0 : 153e5: je 158b6 0 : 153eb: cmp r9d,0x2d 0 : 153ef: je 158b6 0 : 153f5: xor r11d,r11d 0 : 153f8: cmp r9d,0x2b 0 : 153fc: sete r11b 0 : 15400: mov r10,rdx 0 : 15403: sub r10,r11 0 : 15406: add r8,r11 0 : 15409: mov r9,r11 0 : 1540c: neg r9 0 : 1540f: cmp r10,0x11 0 : 15413: jae 15460 0 : 15415: test r10,r10 0 : 15418: je 154a5 0 : 1541e: add r9,rdx 0 : 15421: neg r9 0 : 15424: xor r10d,r10d 0 : 15427: xor edx,edx 0 : 15429: nop DWORD PTR [rax+0x0] 0 : 15430: movzx r11d,BYTE PTR [r8+r10*1] 0 : 15435: add r11d,0xffffffd0 0 : 15439: cmp r11d,0x9 0 : 1543d: ja 158b6 0 : 15443: lea rdx,[rdx+rdx*4] 0 : 15447: mov r11d,r11d 0 : 1544a: lea rdx,[r11+rdx*2] 0 : 1544e: inc r10 0 : 15451: mov r11,r9 0 : 15454: add r11,r10 0 : 15457: jne 15430 0 : 15459: jmp 15347 0 : 1545e: xchg ax,ax 0 : 15460: add r9,rdx 0 : 15463: neg r9 0 : 15466: xor r10d,r10d 0 : 15469: xor eax,eax 0 : 1546b: nop DWORD PTR [rax+rax*1+0x0] 0 : 15470: mov rdx,r9 0 : 15473: add rdx,r10 0 : 15476: je 15340 1 : 1547c: mul rcx 0 : 1547f: movzx edx,BYTE PTR [r8+r10*1] 0 : 15484: jo 157ca 0 : 1548a: add edx,0xffffffd0 0 : 1548d: cmp edx,0xa 0 : 15490: jae 158b6 0 : 15496: mov edx,edx 0 : 15498: inc r10 0 : 1549b: add rax,rdx 0 : 1549e: jae 15470 0 : 154a0: jmp 157d6 0 : 154a5: xor edx,edx 0 : 154a7: jmp 15347 : 512 let n: usize = values.next().unwrap().parse().unwrap(); : 513 let m: usize = values.next().unwrap().parse().unwrap(); : 514 let a: Vec = (0..n).map(|_| values.next().unwrap().parse().unwrap()).collect(); : 515 let b: Vec = (0..m).map(|_| values.next().unwrap().parse().unwrap()).collect(); : : 517 let mut c = vec![0_u64; n + m - 1]; 0 : 154ac: lea rsi,[rax+r12*1] 0 : 154b0: lea r15,[rax+r12*1] 0 : 154b4: dec r15 0 : 154b7: lea rbx,[rsi*8-0x8] 0 : 154bf: movabs rcx,0x2000000000000000 0 : 154c9: cmp r15,rcx 0 : 154cc: setae cl 0 : 154cf: movabs rdx,0x7ffffffffffffff9 0 : 154d9: cmp rbx,rdx 0 : 154dc: setae dl 0 : 154df: or dl,cl 0 : 154e1: je 15502 0 : 154e3: mov QWORD PTR [rbp-0x98],rbx 0 : 154ea: xor r14d,r14d 0 : 154ed: mov rdi,r14 0 : 154f0: mov rsi,QWORD PTR [rbp-0x98] 0 : 154f7: call QWORD PTR [rip+0x41a7b] # 56f78 <_DYNAMIC+0x260> 0 : 154fd: jmp 158d5 0 : 15502: mov QWORD PTR [rbp-0x90],rsi 0 : 15509: test rbx,rbx 0 : 1550c: je 1558a 0 : 1550e: call QWORD PTR [rip+0x41a6c] # 56f80 <_DYNAMIC+0x268> 0 : 15514: mov r14d,0x8 0 : 1551a: mov esi,0x8 0 : 1551f: mov QWORD PTR [rbp-0x98],rbx 0 : 15526: mov rdi,rbx 0 : 15529: call QWORD PTR [rip+0x41a61] # 56f90 <_DYNAMIC+0x278> 0 : 1552f: test rax,rax 0 : 15532: je 154ed 0 : 15534: mov rbx,rax 0 : 15537: mov rcx,r15 0 : 1553a: mov rax,QWORD PTR [rbp-0x40] 0 : 1553e: mov QWORD PTR [rbp-0x70],rcx 0 : 15542: test rax,rax 0 : 15545: jne 1559e 0 : 15547: jmp 156a4 0 : 1554c: add dl,0xd0 0 : 1554f: xor eax,eax 0 : 15551: cmp dl,0xa 0 : 15554: adc al,0x1 0 : 15556: jmp 1555a 0 : 15558: mov al,0x2 0 : 1555a: mov BYTE PTR [rbp-0x50],al 0 : 1555d: lea rdi,[rip+0xffffffffffff2703] # 7c67 0 : 15564: lea rcx,[rip+0x3f94d] # 54eb8 <__frame_dummy_init_array_entry+0x58> 0 : 1556b: lea r8,[rip+0x3fa2e] # 54fa0 <__frame_dummy_init_array_entry+0x140> 0 : 15572: lea rdx,[rbp-0x50] 0 : 15576: mov esi,0x2b 0 : 1557b: mov rbx,QWORD PTR [rbp-0x30] 0 : 1557f: call QWORD PTR [rip+0x41a13] # 56f98 <_DYNAMIC+0x280> 0 : 15585: jmp 158d5 0 : 1558a: mov ebx,0x8 0 : 1558f: xor ecx,ecx 0 : 15591: mov QWORD PTR [rbp-0x70],rcx 0 : 15595: test rax,rax 0 : 15598: je 156a4 0 : 1559e: test r12,r12 0 : 155a1: je 156a4 0 : 155a7: xor edx,edx 0 : 155a9: xor esi,esi 0 : 155ab: nop DWORD PTR [rax+rax*1+0x0] 0 : 155b0: lea rcx,[rsi+0x1] 2 : 155b4: mov QWORD PTR [rbp-0x40],rcx 0 : 155b8: xor r9d,r9d 0 : 155bb: nop DWORD PTR [rax+rax*1+0x0] 4 : 155c0: mov rcx,QWORD PTR [rbp-0x38] : 584 for i in 0..n { : 585 for j in 0..m { : 586 c[i + j] ^= gf_mul(a[i], b[j]); 24 : 155c4: mov rdi,QWORD PTR [rcx+r9*8] : 588 } : 589 } : : 591 fn gf_mul(a: u64, mut b: u64) -> u64 { : 592 let mut product = 0_u128; : 593 while b != 0 { 6 : 155c8: test rdi,rdi 0 : 155cb: je 15620 65 : 155cd: mov rcx,QWORD PTR [rbp-0x60] : 597 c[i + j] ^= gf_mul(a[i], b[j]); 0 : 155d1: mov r14,QWORD PTR [rcx+rsi*8] 0 : 155d5: xor r11d,r11d 11 : 155d8: xor r10d,r10d 71 : 155db: nop DWORD PTR [rax+rax*1+0x0] // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:0 7 : 155e0: tzcnt rcx,rdi : 603 let shift = b.trailing_zeros(); : 604 product ^= (a as u128) << shift; 0 : 155e5: xor r13d,r13d 3289 : 155e8: shld r13,r14,cl // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:31 0 : 155ec: shlx r8,r14,rcx 57 : 155f1: test cl,0x40 3025 : 155f4: cmovne r13,r8 14 : 155f8: cmovne r8,rdx 83 : 155fc: xor r10,r13 13 : 155ff: xor r11,r8 : 613 while b != 0 { 2917 : 15602: blsr rdi,rdi // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:29 3055 : 15607: jne 155e0 : 616 c[i + j] ^= gf_mul(a[i], b[j]); 2 : 15609: lea rdi,[r9+rsi*1] 0 : 1560d: cmp rdi,r15 80 : 15610: jb 15633 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/index.rs:278 0 : 15612: jmp 158c5 0 : 15617: nop WORD PTR [rax+rax*1+0x0] 0 : 15620: xor r11d,r11d 0 : 15623: xor r10d,r10d 0 : 15626: lea rdi,[r9+rsi*1] 0 : 1562a: cmp rdi,r15 0 : 1562d: jae 158c5 0 : 15633: inc r9 : 628 } : : 630 fn gf_reduce(product: u128) -> u64 { : 631 let low = product as u64; : 632 let high = (product >> 64) as u64; : 633 let mut reduced = low ^ high ^ (high << 1) ^ (high << 3) ^ (high << 4); 0 : 15636: lea rcx,[r10+r10*1] 0 : 1563a: xor r11,r10 97 : 1563d: lea r8,[r10*8+0x0] // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:40 : 637 let carry = (high >> 63) ^ (high >> 61) ^ (high >> 60); : 638 reduced ^= carry ^ (carry << 1) ^ (carry << 3) ^ (carry << 4); 0 : 15645: xor r8,rcx : 640 let mut reduced = low ^ high ^ (high << 1) ^ (high << 3) ^ (high << 4); 0 : 15648: mov rcx,r10 0 : 1564b: shl rcx,0x4 : 643 reduced ^= carry ^ (carry << 1) ^ (carry << 3) ^ (carry << 4); 91 : 1564f: xor rcx,r11 // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:42 0 : 15652: xor rcx,r8 : 646 let carry = (high >> 63) ^ (high >> 61) ^ (high >> 60); 0 : 15655: mov r8,r10 0 : 15658: shr r8,0x3d 79 : 1565c: shr r10,0x3c // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:41 0 : 15660: xor r10,r8 : 651 reduced ^= carry ^ (carry << 1) ^ (carry << 3) ^ (carry << 4); 0 : 15663: lea r8d,[r10*8+0x0] 0 : 1566b: lea r11d,[r10+r10*1] 94 : 1566f: xor r11,r8 // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:42 : 655 c[i + j] ^= gf_mul(a[i], b[j]); 0 : 15672: xor r11,rcx : 657 reduced ^= carry ^ (carry << 1) ^ (carry << 3) ^ (carry << 4); 0 : 15675: mov ecx,r10d 0 : 15678: shl ecx,0x4 : 660 c[i + j] ^= gf_mul(a[i], b[j]); 86 : 1567b: xor rcx,r11 // /tmp/cpu-mode-161014-1777968476030810311-30/solution/solution.rs:15 3 : 1567e: xor rcx,QWORD PTR [rbx+rdi*8] 3 : 15682: xor rcx,r10 7 : 15685: mov QWORD PTR [rbx+rdi*8],rcx 0 : 15689: cmp r9,r12 85 : 1568c: jne 155c0 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/iter/range.rs:772 0 : 15692: mov rcx,QWORD PTR [rbp-0x40] 0 : 15696: mov rsi,rcx 0 : 15699: cmp rcx,rax 0 : 1569c: jne 155b0 0 : 156a2: jmp 156ad 0 : 156a4: test r15,r15 0 : 156a7: je 1574d : 674 for (i, value) in c.iter().enumerate() { 0 : 156ad: mov QWORD PTR [rbp-0x68],rbx : 676 print!("{value}"); 0 : 156b1: lea rax,[rbp-0x68] 0 : 156b5: mov QWORD PTR [rbp-0x50],rax 0 : 156b9: lea rax,[rip+0xfffffffffffff5f0] # 14cb0 <<&T as core::fmt::Display>::fmt> 0 : 156c0: mov QWORD PTR [rbp-0x48],rax 0 : 156c4: lea rdi,[rip+0xffffffffffff2cce] # 8399 0 : 156cb: lea rsi,[rbp-0x50] 0 : 156cf: call QWORD PTR [rip+0x418cb] # 56fa0 <_DYNAMIC+0x288> 0 : 156d5: mov rax,QWORD PTR [rbp-0x90] 0 : 156dc: lea rax,[rax*8-0x8] 0 : 156e4: cmp rax,0x8 0 : 156e8: je 1574d 0 : 156ea: lea r14,[rbx+0x8] 0 : 156ee: mov rax,QWORD PTR [rbp-0x90] : 690 print!(" "); 0 : 156f5: lea r13,[rax*8-0x10] 0 : 156fd: mov r12,QWORD PTR [rip+0x4189c] # 56fa0 <_DYNAMIC+0x288> 0 : 15704: lea r15,[rbp-0x50] 0 : 15708: nop DWORD PTR [rax+rax*1+0x0] : 695 for (i, value) in c.iter().enumerate() { 0 : 15710: mov QWORD PTR [rbp-0x68],r14 : 697 print!(" "); 0 : 15714: mov esi,0x3 0 : 15719: lea rdi,[rip+0xffffffffffff3ae3] # 9203 0 : 15720: call r12 : 701 print!("{value}"); 0 : 15723: lea rax,[rbp-0x68] 0 : 15727: mov QWORD PTR [rbp-0x50],rax 0 : 1572b: lea rax,[rip+0xfffffffffffff57e] # 14cb0 <<&T as core::fmt::Display>::fmt> 0 : 15732: mov QWORD PTR [rbp-0x48],rax 0 : 15736: lea rdi,[rip+0xffffffffffff2c5c] # 8399 0 : 1573d: mov rsi,r15 0 : 15740: call r12 0 : 15743: add r14,0x8 0 : 15747: add r13,0xfffffffffffffff8 0 : 1574b: jne 15710 0 : 1574d: mov rsi,QWORD PTR [rbp-0x70] 0 : 15751: test rsi,rsi 0 : 15754: je 15768 0 : 15756: shl rsi,0x3 0 : 1575a: mov edx,0x8 0 : 1575f: mov rdi,rbx 0 : 15762: call QWORD PTR [rip+0x417f8] # 56f60 <_DYNAMIC+0x248> 0 : 15768: mov rsi,QWORD PTR [rbp-0x58] 0 : 1576c: test rsi,rsi 0 : 1576f: je 15784 0 : 15771: shl rsi,0x3 0 : 15775: mov edx,0x8 0 : 1577a: mov rdi,QWORD PTR [rbp-0x38] 0 : 1577e: call QWORD PTR [rip+0x417dc] # 56f60 <_DYNAMIC+0x248> 0 : 15784: mov rsi,QWORD PTR [rbp-0x30] 0 : 15788: test rsi,rsi 0 : 1578b: je 157a0 0 : 1578d: shl rsi,0x3 0 : 15791: mov edx,0x8 0 : 15796: mov rdi,QWORD PTR [rbp-0x60] 0 : 1579a: call QWORD PTR [rip+0x417c0] # 56f60 <_DYNAMIC+0x248> : 733 } 0 : 157a0: mov rsi,QWORD PTR [rbp-0x88] 0 : 157a7: test rsi,rsi 0 : 157aa: je 157bb 0 : 157ac: mov rdi,QWORD PTR [rbp-0x80] 0 : 157b0: mov edx,0x1 0 : 157b5: call QWORD PTR [rip+0x417a5] # 56f60 <_DYNAMIC+0x248> 0 : 157bb: add rsp,0x78 0 : 157bf: pop rbx 0 : 157c0: pop r12 0 : 157c2: pop r13 0 : 157c4: pop r14 0 : 157c6: pop r15 0 : 157c8: pop rbp 0 : 157c9: ret 0 : 157ca: add dl,0xd0 0 : 157cd: xor eax,eax 0 : 157cf: cmp dl,0xa 0 : 157d2: adc al,0x1 0 : 157d4: jmp 157d8 0 : 157d6: mov al,0x2 0 : 157d8: mov BYTE PTR [rbp-0x50],al 0 : 157db: lea rdi,[rip+0xffffffffffff2485] # 7c67 0 : 157e2: lea rcx,[rip+0x3f6cf] # 54eb8 <__frame_dummy_init_array_entry+0x58> 0 : 157e9: lea r8,[rip+0x3f7e0] # 54fd0 <__frame_dummy_init_array_entry+0x170> 0 : 157f0: lea rdx,[rbp-0x50] 0 : 157f4: mov esi,0x2b 0 : 157f9: mov rbx,QWORD PTR [rbp-0x30] 0 : 157fd: mov r14,QWORD PTR [rbp-0x58] 0 : 15801: call QWORD PTR [rip+0x41791] # 56f98 <_DYNAMIC+0x280> 0 : 15807: jmp 158d5 0 : 1580c: add r9b,0xd0 0 : 15810: xor edx,edx 0 : 15812: cmp r9b,0xa 0 : 15816: adc dl,0x1 0 : 15819: mov BYTE PTR [rbp-0x50],dl 0 : 1581c: lea r8,[rip+0x3f705] # 54f28 <__frame_dummy_init_array_entry+0xc8> 0 : 15823: jmp 1583c 0 : 15825: add dl,0xd0 0 : 15828: xor esi,esi 0 : 1582a: cmp dl,0xa 0 : 1582d: adc sil,0x1 0 : 15831: mov BYTE PTR [rbp-0x50],sil 0 : 15835: lea r8,[rip+0x3f71c] # 54f58 <__frame_dummy_init_array_entry+0xf8> 0 : 1583c: lea rdx,[rbp-0x50] 0 : 15840: lea rdi,[rip+0xffffffffffff2420] # 7c67 0 : 15847: lea rcx,[rip+0x3f66a] # 54eb8 <__frame_dummy_init_array_entry+0x58> 0 : 1584e: mov esi,0x2b 0 : 15853: call QWORD PTR [rip+0x4173f] # 56f98 <_DYNAMIC+0x280> 0 : 15859: jmp 158d5 0 : 1585b: mov QWORD PTR [rbp-0x50],rdx 0 : 1585f: lea rdi,[rip+0xffffffffffff2401] # 7c67 0 : 15866: lea rcx,[rip+0x3f66b] # 54ed8 <__frame_dummy_init_array_entry+0x78> 0 : 1586d: lea r8,[rip+0x3f684] # 54ef8 <__frame_dummy_init_array_entry+0x98> 0 : 15874: lea rdx,[rbp-0x50] 0 : 15878: mov esi,0x2b 0 : 1587d: call QWORD PTR [rip+0x41715] # 56f98 <_DYNAMIC+0x280> 0 : 15883: jmp 158d5 0 : 15885: lea rdi,[rip+0x3f6fc] # 54f88 <__frame_dummy_init_array_entry+0x128> 0 : 1588c: mov rbx,QWORD PTR [rbp-0x30] 0 : 15890: call QWORD PTR [rip+0x41712] # 56fa8 <_DYNAMIC+0x290> 0 : 15896: jmp 158d5 0 : 15898: mov al,0x1 0 : 1589a: jmp 1555a 0 : 1589f: lea rdi,[rip+0x3f712] # 54fb8 <__frame_dummy_init_array_entry+0x158> 0 : 158a6: mov rbx,QWORD PTR [rbp-0x30] 0 : 158aa: mov r14,QWORD PTR [rbp-0x58] 0 : 158ae: call QWORD PTR [rip+0x416f4] # 56fa8 <_DYNAMIC+0x290> 0 : 158b4: jmp 158d5 0 : 158b6: mov al,0x1 0 : 158b8: jmp 157d8 0 : 158bd: call QWORD PTR [rip+0x416e5] # 56fa8 <_DYNAMIC+0x290> 0 : 158c3: jmp 158d5 0 : 158c5: lea rdx,[rip+0x3f6a4] # 54f70 <__frame_dummy_init_array_entry+0x110> 0 : 158cc: mov rsi,r15 0 : 158cf: call QWORD PTR [rip+0x416db] # 56fb0 <_DYNAMIC+0x298> 0 : 158d5: ud2 0 : 158d7: mov dl,0x1 0 : 158d9: jmp 15819 0 : 158de: mov sil,0x1 0 : 158e1: jmp 15831 0 : 158e6: jmp 158ea 0 : 158e8: jmp 158ea 0 : 158ea: mov r15,rax 0 : 158ed: cmp QWORD PTR [rbp-0x70],0x0 0 : 158f2: je 15938 0 : 158f4: mov rsi,QWORD PTR [rbp-0x70] 0 : 158f8: shl rsi,0x3 0 : 158fc: mov edx,0x8 0 : 15901: mov rdi,rbx 0 : 15904: call QWORD PTR [rip+0x41656] # 56f60 <_DYNAMIC+0x248> 0 : 1590a: jmp 15938 0 : 1590c: mov r15,rax 0 : 1590f: lea rdi,[rbp-0x50] 0 : 15913: call 14cd0 > 0 : 15918: jmp 15981 0 : 1591a: call QWORD PTR [rip+0x41698] # 56fb8 <_DYNAMIC+0x2a0> 0 : 15920: mov r15,rax 0 : 15923: shl r14,0x3 0 : 15927: mov edx,0x8 0 : 1592c: mov rdi,QWORD PTR [rbp-0x38] 0 : 15930: mov rsi,r14 0 : 15933: jmp 15952 0 : 15935: mov r15,rax 0 : 15938: mov rbx,QWORD PTR [rbp-0x30] 0 : 1593c: mov rsi,QWORD PTR [rbp-0x58] 0 : 15940: test rsi,rsi 0 : 15943: je 15966 0 : 15945: shl rsi,0x3 0 : 15949: mov edx,0x8 0 : 1594e: mov rdi,QWORD PTR [rbp-0x38] 0 : 15952: call QWORD PTR [rip+0x41608] # 56f60 <_DYNAMIC+0x248> 0 : 15958: jmp 15966 0 : 1595a: mov r15,rax 0 : 1595d: jmp 1596b 0 : 1595f: mov r15,rax 0 : 15962: mov rbx,QWORD PTR [rbp-0x30] 0 : 15966: test rbx,rbx 0 : 15969: je 15981 0 : 1596b: shl rbx,0x3 0 : 1596f: mov edx,0x8 0 : 15974: mov rdi,QWORD PTR [rbp-0x60] 0 : 15978: mov rsi,rbx 0 : 1597b: call QWORD PTR [rip+0x415df] # 56f60 <_DYNAMIC+0x248> 0 : 15981: mov rsi,QWORD PTR [rbp-0x88] 0 : 15988: test rsi,rsi 0 : 1598b: je 1599c 0 : 1598d: mov rdi,QWORD PTR [rbp-0x80] 0 : 15991: mov edx,0x1 0 : 15996: call QWORD PTR [rip+0x415c4] # 56f60 <_DYNAMIC+0x248> 0 : 1599c: mov rdi,r15 0 : 1599f: call 53e20 <_Unwind_Resume@plt> 0 : 159a4: mov r15,rax 0 : 159a7: mov rsi,QWORD PTR [rbp-0x88] 0 : 159ae: test rsi,rsi 0 : 159b1: jne 1598d 0 : 159b3: jmp 1599c Sorted summary for file /box/solution-bin ---------------------------------------------- 50.23 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/sync/atomic.rs:3908 19.74 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/sync/atomic.rs:3975 19.68 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:639 10.35 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/sync/atomic.rs:3890 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (10 samples, percent: local period) ------------------------------------------------------------------------------------------------------------------------ : : : : 3 Disassembly of section .text: : : 5 0000000000041ee0 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt>: 0 : 41ee0: push rbp 0 : 41ee1: mov rbp,rsp 0 : 41ee4: push r15 0 : 41ee6: push r14 0 : 41ee8: push r12 0 : 41eea: push rbx 0 : 41eeb: sub rsp,0x20 0 : 41eef: mov rbx,rdx 0 : 41ef2: mov r14,rsi 0 : 41ef5: mov rax,QWORD PTR [rdi] 0 : 41ef8: mov r15,QWORD PTR [rax] 0 : 41efb: mov rax,QWORD PTR fs:0x0 0 : 41f04: lea rax,[rax-0x8] 0 : 41f0b: mov r12,QWORD PTR [rax] 0 : 41f0e: test r12,r12 0 : 41f11: je 41f30 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x50> 1 : 41f13: mov rax,QWORD PTR [r15] // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/sync/atomic.rs:3890 0 : 41f16: cmp r12,rax 0 : 41f19: jne 41f64 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x84> 0 : 41f1b: mov eax,DWORD PTR [r15+0xc] 0 : 41f1f: cmp eax,0xffffffff 0 : 41f22: je 42006 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x126> 0 : 41f28: inc eax 0 : 41f2a: mov DWORD PTR [r15+0xc],eax 0 : 41f2e: jmp 41f82 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0xa2> 0 : 41f30: mov rcx,rax 0 : 41f33: mov rax,QWORD PTR [rip+0x17346] # 59280 <::new::COUNTER> 0 : 41f3a: nop WORD PTR [rax+rax*1+0x0] 0 : 41f40: cmp rax,0xffffffffffffffff 0 : 41f44: je 42001 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x121> 0 : 41f4a: lea r12,[rax+0x1] 0 : 41f4e: lock cmpxchg QWORD PTR [rip+0x17329],r12 # 59280 <::new::COUNTER> 0 : 41f57: jne 41f40 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x60> 0 : 41f59: mov QWORD PTR [rcx],r12 0 : 41f5c: mov rax,QWORD PTR [r15] 0 : 41f5f: cmp r12,rax 0 : 41f62: je 41f1b <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x3b> 0 : 41f64: mov ecx,0x1 0 : 41f69: xor eax,eax 2 : 41f6b: lock cmpxchg DWORD PTR [r15+0x8],ecx // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/sync/atomic.rs:3975 0 : 41f71: jne 4201f <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x13f> 0 : 41f77: mov QWORD PTR [r15],r12 0 : 41f7a: mov DWORD PTR [r15+0xc],0x1 0 : 41f82: mov QWORD PTR [rbp-0x28],r15 0 : 41f86: lea rax,[rbp-0x28] 0 : 41f8a: mov QWORD PTR [rbp-0x38],rax 0 : 41f8e: lea r15,[rbp-0x30] 0 : 41f92: mov QWORD PTR [rbp-0x30],0x0 1 : 41f9a: lea rsi,[rip+0x132e7] # 55288 <__frame_dummy_init_array_entry+0x428> // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/mod.rs:639 0 : 41fa1: lea rdi,[rbp-0x38] 0 : 41fa5: mov rdx,r14 0 : 41fa8: mov rcx,rbx 1 : 41fab: call QWORD PTR [rip+0x1528f] # 57240 <_DYNAMIC+0x528> 0 : 41fb1: mov ecx,eax 0 : 41fb3: mov rax,QWORD PTR [rbp-0x30] 0 : 41fb7: test cl,cl 0 : 41fb9: je 41fcb <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0xeb> 0 : 41fbb: test rax,rax 0 : 41fbe: je 4202e <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x14e> 0 : 41fc0: mov rsi,QWORD PTR [rbp-0x28] 0 : 41fc4: dec DWORD PTR [rsi+0xc] 0 : 41fc7: jne 41ff4 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x114> 0 : 41fc9: jmp 41fe3 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x103> 0 : 41fcb: test rax,rax 0 : 41fce: je 41fd8 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0xf8> 0 : 41fd0: mov rdi,r15 0 : 41fd3: call 20120 > 0 : 41fd8: xor eax,eax 0 : 41fda: mov rsi,QWORD PTR [rbp-0x28] 0 : 41fde: dec DWORD PTR [rsi+0xc] 0 : 41fe1: jne 41ff4 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x114> 0 : 41fe3: mov QWORD PTR [rsi],0x0 0 : 41fea: xor ecx,ecx 5 : 41fec: xchg DWORD PTR [rsi+0x8],ecx // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/sync/atomic.rs:3908 0 : 41fef: cmp ecx,0x2 0 : 41ff2: je 42049 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x169> 0 : 41ff4: add rsp,0x20 0 : 41ff8: pop rbx 0 : 41ff9: pop r12 0 : 41ffb: pop r14 0 : 41ffd: pop r15 0 : 41fff: pop rbp 0 : 42000: ret 0 : 42001: call 3f6d0 <::new::exhausted> 0 : 42006: lea rdi,[rip+0xfffffffffffc95fb] # b608 0 : 4200d: lea rdx,[rip+0x1368c] # 556a0 <__frame_dummy_init_array_entry+0x840> 0 : 42014: mov esi,0x26 0 : 42019: call QWORD PTR [rip+0x152b1] # 572d0 <_DYNAMIC+0x5b8> 0 : 4201f: lea rdi,[r15+0x8] 0 : 42023: call QWORD PTR [rip+0x150d7] # 57100 <_DYNAMIC+0x3e8> 0 : 42029: jmp 41f77 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x97> 0 : 4202e: lea rdi,[rip+0xfffffffffffc8cc8] # acfd 0 : 42035: lea rdx,[rip+0x13204] # 55240 <__frame_dummy_init_array_entry+0x3e0> 0 : 4203c: mov esi,0xad 0 : 42041: call QWORD PTR [rip+0x15109] # 57150 <_DYNAMIC+0x438> 0 : 42047: ud2 0 : 42049: add rsi,0x8 0 : 4204d: mov edi,0xca 0 : 42052: mov edx,0x81 0 : 42057: mov ecx,0x1 0 : 4205c: mov rbx,rax 0 : 4205f: xor eax,eax 0 : 42061: call QWORD PTR [rip+0x15171] # 571d8 0 : 42067: mov rax,rbx 0 : 4206a: jmp 41ff4 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x114> 0 : 4206c: mov rbx,rax 0 : 4206f: mov rdi,QWORD PTR [rbp-0x28] 0 : 42073: call 1fcc0 >>>> 0 : 42078: mov rdi,rbx 0 : 4207b: call 53e20 <_Unwind_Resume@plt> 0 : 42080: mov rbx,rax 0 : 42083: cmp QWORD PTR [rbp-0x30],0x0 0 : 42088: je 42092 <<&std::io::stdio::Stdout as std::io::Write>::write_fmt+0x1b2> 0 : 4208a: mov rdi,r15 0 : 4208d: call 20120 > 0 : 42092: mov rdi,QWORD PTR [rbp-0x28] 0 : 42096: call 1fcc0 >>>> 0 : 4209b: mov rdi,rbx 0 : 4209e: call 53e20 <_Unwind_Resume@plt> 0 : 420a3: call QWORD PTR [rip+0x14f0f] # 56fb8 <_DYNAMIC+0x2a0> Sorted summary for file /box/solution-bin ---------------------------------------------- 65.60 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/buffered/linewritershim.rs:269 34.40 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/mem/mod.rs:902 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (3 samples, percent: local period) ----------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 00000000000423b0 <::write_all>: 0 : 423b0: push rbp 0 : 423b1: mov rbp,rsp 0 : 423b4: push r15 0 : 423b6: push r14 0 : 423b8: push r13 0 : 423ba: push r12 0 : 423bc: push rbx 0 : 423bd: push rax 0 : 423be: mov r13,QWORD PTR [rdi] 0 : 423c1: cmp QWORD PTR [r13+0x10],0x0 0 : 423c6: jne 424ec <::write_all+0x13c> 0 : 423cc: mov rbx,rdx 0 : 423cf: mov r14,rsi 0 : 423d2: mov QWORD PTR [r13+0x10],0xffffffffffffffff 0 : 423da: mov edi,0xa 2 : 423df: call QWORD PTR [rip+0x1512b] # 57510 <_DYNAMIC+0x7f8> // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/buffered/linewritershim.rs:269 0 : 423e5: lea r15,[r13+0x18] 0 : 423e9: cmp rax,0x1 0 : 423ed: jne 42443 <::write_all+0x93> 0 : 423ef: mov r12,rdx 0 : 423f2: inc r12 0 : 423f5: sub rbx,r12 0 : 423f8: jb 424f9 <::write_all+0x149> 0 : 423fe: mov r15,QWORD PTR [r13+0x28] 0 : 42402: test r15,r15 0 : 42405: je 42499 <::write_all+0xe9> 0 : 4240b: lea rax,[r13+0x18] 0 : 4240f: mov rax,QWORD PTR [rax] 0 : 42412: sub rax,r15 0 : 42415: cmp r12,rax 0 : 42418: jae 42514 <::write_all+0x164> 0 : 4241e: mov rdi,QWORD PTR [r13+0x20] 0 : 42422: add rdi,r15 0 : 42425: mov rsi,r14 0 : 42428: mov rdx,r12 0 : 4242b: call QWORD PTR [rip+0x14d2f] # 57160 0 : 42431: add r15,r12 0 : 42434: mov QWORD PTR [r13+0x28],r15 0 : 42438: lea rdi,[r13+0x18] 0 : 4243c: call 37700 <>::flush_buf> 0 : 42441: jmp 424a5 <::write_all+0xf5> 0 : 42443: mov r12,QWORD PTR [r13+0x28] 0 : 42447: test r12,r12 0 : 4244a: je 4246b <::write_all+0xbb> 0 : 4244c: mov rax,QWORD PTR [r13+0x20] 0 : 42450: cmp BYTE PTR [rax+r12*1-0x1],0xa 0 : 42456: jne 4246e <::write_all+0xbe> 0 : 42458: mov rdi,r15 0 : 4245b: call 37700 <>::flush_buf> 0 : 42460: test rax,rax 0 : 42463: jne 424d9 <::write_all+0x129> 0 : 42465: mov r12,QWORD PTR [r13+0x28] 0 : 42469: jmp 4246e <::write_all+0xbe> 0 : 4246b: xor r12d,r12d 0 : 4246e: mov rax,QWORD PTR [r15] 0 : 42471: sub rax,r12 0 : 42474: cmp rbx,rax 0 : 42477: jae 42538 <::write_all+0x188> 0 : 4247d: mov rdi,QWORD PTR [r13+0x20] 0 : 42481: add rdi,r12 0 : 42484: mov rsi,r14 0 : 42487: mov rdx,rbx 0 : 4248a: call QWORD PTR [rip+0x14cd0] # 57160 0 : 42490: add r12,rbx 0 : 42493: mov QWORD PTR [r13+0x28],r12 0 : 42497: jmp 424d7 <::write_all+0x127> 0 : 42499: mov rsi,r14 0 : 4249c: mov rdx,r12 0 : 4249f: call QWORD PTR [rip+0x14edb] # 57380 <_DYNAMIC+0x668> 0 : 424a5: test rax,rax 0 : 424a8: jne 424d9 <::write_all+0x129> 0 : 424aa: add r14,r12 0 : 424ad: mov rax,QWORD PTR [r13+0x18] 0 : 424b1: mov r15,QWORD PTR [r13+0x28] 0 : 424b5: sub rax,r15 0 : 424b8: cmp rbx,rax 0 : 424bb: jae 42534 <::write_all+0x184> 0 : 424bd: mov rdi,QWORD PTR [r13+0x20] 0 : 424c1: add rdi,r15 0 : 424c4: mov rsi,r14 0 : 424c7: mov rdx,rbx 0 : 424ca: call QWORD PTR [rip+0x14c90] # 57160 0 : 424d0: add r15,rbx 0 : 424d3: mov QWORD PTR [r13+0x28],r15 0 : 424d7: xor eax,eax 1 : 424d9: inc QWORD PTR [r13+0x10] // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/mem/mod.rs:902 0 : 424dd: add rsp,0x8 0 : 424e1: pop rbx 0 : 424e2: pop r12 0 : 424e4: pop r13 0 : 424e6: pop r14 0 : 424e8: pop r15 0 : 424ea: pop rbp 0 : 424eb: ret 0 : 424ec: lea rdi,[rip+0x1390d] # 55e00 <__frame_dummy_init_array_entry+0xfa0> 0 : 424f3: call QWORD PTR [rip+0x14d2f] # 57228 <_DYNAMIC+0x510> 0 : 424f9: lea rdi,[rip+0xfffffffffffc8c09] # b109 0 : 42500: lea rdx,[rip+0x137e9] # 55cf0 <__frame_dummy_init_array_entry+0xe90> 0 : 42507: mov esi,0x13 0 : 4250c: call QWORD PTR [rip+0x14c3e] # 57150 <_DYNAMIC+0x438> 0 : 42512: ud2 0 : 42514: lea rdi,[r13+0x18] 0 : 42518: mov r15,rdi 0 : 4251b: mov rsi,r14 0 : 4251e: mov rdx,r12 0 : 42521: call QWORD PTR [rip+0x14e51] # 57378 <_DYNAMIC+0x660> 0 : 42527: test rax,rax 0 : 4252a: mov rdi,r15 0 : 4252d: jne 424d9 <::write_all+0x129> 0 : 4252f: jmp 4243c <::write_all+0x8c> 0 : 42534: lea r15,[r13+0x18] 0 : 42538: mov rdi,r15 0 : 4253b: mov rsi,r14 0 : 4253e: mov rdx,rbx 0 : 42541: call QWORD PTR [rip+0x14e31] # 57378 <_DYNAMIC+0x660> 0 : 42547: jmp 424d9 <::write_all+0x129> 0 : 42549: inc QWORD PTR [r13+0x10] 0 : 4254d: mov rdi,rax 0 : 42550: call 53e20 <_Unwind_Resume@plt> Sorted summary for file /box/solution-bin ---------------------------------------------- 100.00 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/stdio.rs:1274 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (2 samples, percent: local period) ----------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 000000000003c3b0 : 0 : 3c3b0: push rbp 0 : 3c3b1: mov rbp,rsp 0 : 3c3b4: push r14 1 : 3c3b6: push rbx // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/io/stdio.rs:1274 0 : 3c3b7: sub rsp,0x40 0 : 3c3bb: mov rbx,rsi 0 : 3c3be: mov r14,rdi 1 : 3c3c1: lea rax,[rip+0xfffffffffffcf423] # b7eb 0 : 3c3c8: mov QWORD PTR [rbp-0x50],rax 0 : 3c3cc: mov QWORD PTR [rbp-0x48],0x6 0 : 3c3d4: call 3c160 0 : 3c3d9: test al,al 0 : 3c3db: jne 3c40f 0 : 3c3dd: mov eax,DWORD PTR [rip+0x1c44d] # 58830 0 : 3c3e3: test eax,eax 0 : 3c3e5: jne 3c418 0 : 3c3e7: lea rax,[rip+0x1c40a] # 587f8 0 : 3c3ee: mov QWORD PTR [rbp-0x20],rax 0 : 3c3f2: lea rax,[rbp-0x20] 0 : 3c3f6: mov QWORD PTR [rbp-0x40],rax 0 : 3c3fa: lea rdi,[rbp-0x40] 0 : 3c3fe: mov rsi,r14 0 : 3c401: mov rdx,rbx 0 : 3c404: call QWORD PTR [rip+0x1b02e] # 57438 <_DYNAMIC+0x720> 0 : 3c40a: test rax,rax 0 : 3c40d: jne 3c41f 0 : 3c40f: add rsp,0x40 0 : 3c413: pop rbx 0 : 3c414: pop r14 0 : 3c416: pop rbp 0 : 3c417: ret 0 : 3c418: call 19254 <>>>>::initialize::<>>>>::get_or_init::{closure#0}, !>> 0 : 3c41d: jmp 3c3e7 0 : 3c41f: mov QWORD PTR [rbp-0x18],rax 0 : 3c423: lea rax,[rbp-0x50] 0 : 3c427: mov QWORD PTR [rbp-0x40],rax 0 : 3c42b: lea rax,[rip+0x3d8e] # 401c0 <<&str as core::fmt::Display>::fmt> 0 : 3c432: mov QWORD PTR [rbp-0x38],rax 0 : 3c436: lea rax,[rbp-0x18] 0 : 3c43a: mov QWORD PTR [rbp-0x30],rax 0 : 3c43e: mov rax,QWORD PTR [rip+0x1aec3] # 57308 <_DYNAMIC+0x5f0> 0 : 3c445: mov QWORD PTR [rbp-0x28],rax 0 : 3c449: lea rdi,[rip+0xfffffffffffcc1b8] # 8608 0 : 3c450: lea rdx,[rip+0x18ee9] # 55340 <__frame_dummy_init_array_entry+0x4e0> 0 : 3c457: lea rsi,[rbp-0x40] 0 : 3c45b: call QWORD PTR [rip+0x1acef] # 57150 <_DYNAMIC+0x438> 0 : 3c461: ud2 0 : 3c463: mov rbx,rax 0 : 3c466: lea rdi,[rbp-0x18] 0 : 3c46a: call 20120 > 0 : 3c46f: mov rdi,rbx 0 : 3c472: call 53e20 <_Unwind_Resume@plt> 0 : 3c477: call QWORD PTR [rip+0x1ab3b] # 56fb8 <_DYNAMIC+0x2a0> Sorted summary for file /box/solution-bin ---------------------------------------------- 50.46 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/memchr.rs:111 49.54 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/iter/macros.rs:407 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (2 samples, percent: local period) ----------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 0000000000051ba0 : 0 : 51ba0: push rbp 0 : 51ba1: mov rbp,rsp 0 : 51ba4: push r15 1 : 51ba6: push r14 0 : 51ba8: push rbx 0 : 51ba9: push rax 0 : 51baa: lea r8,[rsi+0x7] 0 : 51bae: and r8,0xfffffffffffffff8 0 : 51bb2: sub r8,rsi 0 : 51bb5: mov rax,rdx 0 : 51bb8: mov rcx,rdx 0 : 51bbb: cmp rdx,r8 0 : 51bbe: jb 51bd7 0 : 51bc0: mov ecx,edx 0 : 51bc2: sub ecx,r8d 0 : 51bc5: and ecx,0xf 0 : 51bc8: mov rax,rdx 0 : 51bcb: sub rax,rcx 0 : 51bce: jb 51c9a 0 : 51bd4: mov rcx,r8 0 : 51bd7: mov r9,rax 0 : 51bda: neg r9 0 : 51bdd: mov r10,rdx 0 : 51be0: mov r8,r9 0 : 51be3: add r8,r10 0 : 51be6: je 51bf8 0 : 51be8: lea r8,[r10-0x1] 0 : 51bec: cmp BYTE PTR [rsi+r10*1-0x1],dil 0 : 51bf1: mov r10,r8 0 : 51bf4: jne 51be0 0 : 51bf6: jmp 51c73 0 : 51bf8: movabs r8,0x8080808080808080 0 : 51c02: movabs r10,0x101010101010100 0 : 51c0c: movzx r9d,dil 0 : 51c10: lea r11,[r10+0x1] 0 : 51c14: imul r11,r9 0 : 51c18: nop DWORD PTR [rax+rax*1+0x0] 0 : 51c20: mov r9,rax 0 : 51c23: cmp rax,rcx 0 : 51c26: jbe 51c59 0 : 51c28: lea rax,[r9-0x10] 0 : 51c2c: mov rbx,QWORD PTR [rsi+r9*1-0x10] 0 : 51c31: xor rbx,r11 0 : 51c34: mov r14,r10 0 : 51c37: sub r14,rbx 0 : 51c3a: or r14,rbx 0 : 51c3d: mov rbx,QWORD PTR [rsi+r9*1-0x8] 0 : 51c42: xor rbx,r11 0 : 51c45: mov r15,r10 0 : 51c48: sub r15,rbx 0 : 51c4b: or r15,rbx 0 : 51c4e: and r14,r8 0 : 51c51: and r14,r15 0 : 51c54: cmp r14,r8 0 : 51c57: je 51c20 0 : 51c59: cmp r9,rdx 0 : 51c5c: ja 51c88 0 : 51c5e: xor eax,eax 0 : 51c60: test r9,r9 0 : 51c63: je 51c7a 0 : 51c65: lea r8,[r9-0x1] 0 : 51c69: cmp BYTE PTR [rsi+r9*1-0x1],dil 0 : 51c6e: mov r9,r8 1 : 51c71: jne 51c60 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/slice/iter/macros.rs:407 0 : 51c73: mov eax,0x1 0 : 51c78: jmp 51c7a 0 : 51c7a: mov rdx,r8 0 : 51c7d: add rsp,0x8 0 : 51c81: pop rbx 0 : 51c82: pop r14 0 : 51c84: pop r15 0 : 51c86: pop rbp 0 : 51c87: ret 0 : 51c88: lea rcx,[rip+0x4fb1] # 56c40 <__frame_dummy_init_array_entry+0x1de0> 0 : 51c8f: xor edi,edi 0 : 51c91: mov rsi,r9 0 : 51c94: call QWORD PTR [rip+0x5506] # 571a0 <_DYNAMIC+0x488> 0 : 51c9a: lea rcx,[rip+0x4fb7] # 56c58 <__frame_dummy_init_array_entry+0x1df8> 0 : 51ca1: mov rdi,rax 0 : 51ca4: mov rsi,rdx 0 : 51ca7: call QWORD PTR [rip+0x54f3] # 571a0 <_DYNAMIC+0x488> Sorted summary for file /box/solution-bin ---------------------------------------------- 100.00 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sync/once.rs:219 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (1 samples, percent: local period) ----------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 000000000002a8f0 <::call_once_force::<>>>>::initialize<>>>>::get_or_init::{closure#0}, !>::{closure#0}>::{closure#0}>: 1 : 2a8f0: push rbp // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/std/src/sync/once.rs:219 0 : 2a8f1: mov rbp,rsp 0 : 2a8f4: push rbx 0 : 2a8f5: push rax 0 : 2a8f6: mov rax,QWORD PTR [rdi] 0 : 2a8f9: mov rbx,QWORD PTR [rax] 0 : 2a8fc: mov QWORD PTR [rax],0x0 0 : 2a903: test rbx,rbx 0 : 2a906: je 2a950 <::call_once_force::<>>>>::initialize<>>>>::get_or_init::{closure#0}, !>::{closure#0}>::{closure#0}+0x60> 0 : 2a908: call QWORD PTR [rip+0x2c672] # 56f80 <_DYNAMIC+0x268> 0 : 2a90e: mov edi,0x400 0 : 2a913: mov esi,0x1 0 : 2a918: call QWORD PTR [rip+0x2c66a] # 56f88 <_DYNAMIC+0x270> 0 : 2a91e: test rax,rax 0 : 2a921: je 2a95d <::call_once_force::<>>>>::initialize<>>>>::get_or_init::{closure#0}, !>::{closure#0}>::{closure#0}+0x6d> 0 : 2a923: xorps xmm0,xmm0 0 : 2a926: movups XMMWORD PTR [rbx],xmm0 0 : 2a929: mov QWORD PTR [rbx+0x10],0x0 0 : 2a931: mov QWORD PTR [rbx+0x18],0x400 0 : 2a939: mov QWORD PTR [rbx+0x20],rax 0 : 2a93d: mov QWORD PTR [rbx+0x28],0x0 0 : 2a945: mov BYTE PTR [rbx+0x30],0x0 0 : 2a949: add rsp,0x8 0 : 2a94d: pop rbx 0 : 2a94e: pop rbp 0 : 2a94f: ret 0 : 2a950: lea rdi,[rip+0x2aa79] # 553d0 <__frame_dummy_init_array_entry+0x570> 0 : 2a957: call QWORD PTR [rip+0x2c64b] # 56fa8 <_DYNAMIC+0x290> 0 : 2a95d: mov edi,0x1 0 : 2a962: mov esi,0x400 0 : 2a967: call QWORD PTR [rip+0x2c60b] # 56f78 <_DYNAMIC+0x260> Sorted summary for file /box/solution-bin ---------------------------------------------- 100.00 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/fmt/mod.rs:878 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (1 samples, percent: local period) ----------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 00000000000507f0 : 0 : 507f0: push rbp 0 : 507f1: mov rbp,rsp 0 : 507f4: push r15 0 : 507f6: push r14 0 : 507f8: push r13 0 : 507fa: push r12 0 : 507fc: push rbx 0 : 507fd: sub rsp,0x38 0 : 50801: mov rbx,rcx 0 : 50804: mov r13,rdx 0 : 50807: mov r14,rdi 1 : 5080a: test bl,0x1 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/fmt/mod.rs:878 0 : 5080d: jne 5097b 0 : 50813: movzx eax,BYTE PTR [r13+0x0] 0 : 50818: test al,al 0 : 5081a: je 5099b 0 : 50820: mov QWORD PTR [rbp-0x50],rsi 0 : 50824: mov rcx,QWORD PTR [rsi+0x18] 0 : 50828: mov QWORD PTR [rbp-0x58],rcx 0 : 5082c: mov QWORD PTR [rbp-0x30],0x0 0 : 50834: jmp 50850 0 : 50836: cs nop WORD PTR [rax+rax*1+0x0] 0 : 50840: movzx eax,BYTE PTR [r12] 0 : 50845: mov r13,r12 0 : 50848: test al,al 0 : 5084a: je 5099b 0 : 50850: lea r12,[r13+0x1] 0 : 50854: movzx r15d,al 0 : 50858: test al,al 0 : 5085a: js 50880 0 : 5085c: mov rdi,r14 0 : 5085f: mov rsi,r12 0 : 50862: mov rdx,r15 0 : 50865: call QWORD PTR [rbp-0x58] 0 : 50868: test al,al 0 : 5086a: jne 5099f 0 : 50870: add r12,r15 0 : 50873: jmp 50840 0 : 50875: data16 cs nop WORD PTR [rax+rax*1+0x0] 0 : 50880: cmp al,0x80 0 : 50882: je 508a5 0 : 50884: cmp r15d,0xc0 0 : 5088b: jne 508cc 0 : 5088d: mov r15,QWORD PTR [rbp-0x30] 0 : 50891: mov rax,r15 0 : 50894: shl rax,0x4 0 : 50898: mov QWORD PTR [rbp-0x38],0x60000020 0 : 508a0: jmp 50942 0 : 508a5: movzx r15d,WORD PTR [r13+0x1] 0 : 508aa: lea rsi,[r13+0x3] 0 : 508ae: mov rdi,r14 0 : 508b1: mov rdx,r15 0 : 508b4: call QWORD PTR [rbp-0x58] 0 : 508b7: test al,al 0 : 508b9: jne 5099f 0 : 508bf: lea r12,[r15+r13*1] 0 : 508c3: add r12,0x3 0 : 508c7: jmp 50840 0 : 508cc: mov ecx,0x60000020 0 : 508d1: test al,0x1 0 : 508d3: je 508e0 0 : 508d5: mov ecx,DWORD PTR [r13+0x1] 0 : 508d9: add r13,0x5 0 : 508dd: mov r12,r13 0 : 508e0: test al,0x2 0 : 508e2: jne 508fd 0 : 508e4: xor edx,edx 0 : 508e6: mov r15,QWORD PTR [rbp-0x30] 0 : 508ea: test al,0x4 0 : 508ec: je 5090e 0 : 508ee: movzx esi,WORD PTR [r12] 0 : 508f3: add r12,0x2 0 : 508f7: test al,0x8 0 : 508f9: jne 50914 0 : 508fb: jmp 5091d 0 : 508fd: movzx edx,WORD PTR [r12] 0 : 50902: add r12,0x2 0 : 50906: mov r15,QWORD PTR [rbp-0x30] 0 : 5090a: test al,0x4 0 : 5090c: jne 508ee 0 : 5090e: xor esi,esi 0 : 50910: test al,0x8 0 : 50912: je 5091d 0 : 50914: movzx r15d,WORD PTR [r12] 0 : 50919: add r12,0x2 0 : 5091d: test al,0x10 0 : 5091f: jne 5096a 0 : 50921: test al,0x20 0 : 50923: je 50930 0 : 50925: movzx eax,si 0 : 50928: shl eax,0x4 0 : 5092b: movzx esi,WORD PTR [rbx+rax*1+0x8] 0 : 50930: mov rax,r15 0 : 50933: shl rax,0x4 0 : 50937: mov DWORD PTR [rbp-0x38],ecx 0 : 5093a: mov WORD PTR [rbp-0x34],dx 0 : 5093e: mov WORD PTR [rbp-0x32],si 0 : 50942: mov QWORD PTR [rbp-0x48],r14 0 : 50946: mov rcx,QWORD PTR [rbp-0x50] 0 : 5094a: mov QWORD PTR [rbp-0x40],rcx 0 : 5094e: mov rdi,QWORD PTR [rbx+rax*1] 0 : 50952: lea rsi,[rbp-0x48] 0 : 50956: call QWORD PTR [rbx+rax*1+0x8] 0 : 5095a: test al,al 0 : 5095c: jne 5099f 0 : 5095e: inc r15 0 : 50961: mov QWORD PTR [rbp-0x30],r15 0 : 50965: jmp 50840 0 : 5096a: movzx edx,dx 0 : 5096d: shl edx,0x4 0 : 50970: movzx edx,WORD PTR [rbx+rdx*1+0x8] 0 : 50975: test al,0x20 0 : 50977: jne 50925 0 : 50979: jmp 50930 0 : 5097b: shr rbx,1 0 : 5097e: mov rax,QWORD PTR [rsi+0x18] 0 : 50982: mov rdi,r14 0 : 50985: mov rsi,r13 0 : 50988: mov rdx,rbx 0 : 5098b: add rsp,0x38 0 : 5098f: pop rbx 0 : 50990: pop r12 0 : 50992: pop r13 0 : 50994: pop r14 0 : 50996: pop r15 0 : 50998: pop rbp 0 : 50999: jmp rax 0 : 5099b: xor eax,eax 0 : 5099d: jmp 509a1 0 : 5099f: mov al,0x1 0 : 509a1: add rsp,0x38 0 : 509a5: pop rbx 0 : 509a6: pop r12 0 : 509a8: pop r13 0 : 509aa: pop r14 0 : 509ac: pop r15 0 : 509ae: pop rbp 0 : 509af: ret Sorted summary for file /box/solution-bin ---------------------------------------------- 100.00 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/fmt/num.rs:135 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (1 samples, percent: local period) ----------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 00000000000535f0 <::fmt>: 0 : 535f0: push rbp 0 : 535f1: mov rbp,rsp 0 : 535f4: push rbx 1 : 535f5: sub rsp,0x18 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/fmt/num.rs:135 0 : 535f9: mov r8,QWORD PTR [rdi] 0 : 535fc: mov eax,0x14 0 : 53601: lea rdi,[rip+0xfffffffffffb960e] # cc16 0 : 53608: mov rdx,r8 0 : 5360b: cmp r8,0x3e8 0 : 53612: jb 53683 <::fmt+0x93> 0 : 53614: movabs r9,0x346dc5d63886594b 0 : 5361e: mov rcx,r8 0 : 53621: data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] 0 : 53630: mov r10,rax 0 : 53633: mov rax,rcx 0 : 53636: mul r9 0 : 53639: shr rdx,0xb 0 : 5363d: imul eax,edx,0x2710 0 : 53643: mov r11d,ecx 0 : 53646: sub r11d,eax 0 : 53649: imul eax,r11d,0x147b 0 : 53650: shr eax,0x13 0 : 53653: imul ebx,eax,0x64 0 : 53656: sub r11d,ebx 0 : 53659: movzx r11d,r11w 0 : 5365d: movzx eax,WORD PTR [rdi+rax*2] 0 : 53661: movd xmm0,eax 0 : 53665: pinsrw xmm0,WORD PTR [rdi+r11*2],0x1 0 : 5366c: movd DWORD PTR [rbp+r10*1-0x20],xmm0 0 : 53673: lea rax,[r10-0x4] 0 : 53677: cmp rcx,0x98967f 0 : 5367e: mov rcx,rdx 0 : 53681: ja 53630 <::fmt+0x40> 0 : 53683: cmp rdx,0x9 0 : 53687: jbe 536b4 <::fmt+0xc4> 0 : 53689: mov ecx,edx 0 : 5368b: shr ecx,0x2 0 : 5368e: movzx ecx,cx 0 : 53691: imul ecx,ecx,0x147b 0 : 53697: shr ecx,0x11 0 : 5369a: imul r9d,ecx,0x64 0 : 5369e: sub edx,r9d 0 : 536a1: movzx edx,dx 0 : 536a4: movzx edx,WORD PTR [rdi+rdx*2] 0 : 536a8: mov WORD PTR [rbp+rax*1-0x1e],dx 0 : 536ad: add rax,0xfffffffffffffffe 0 : 536b1: mov rdx,rcx 0 : 536b4: test r8,r8 0 : 536b7: je 536be <::fmt+0xce> 0 : 536b9: test rdx,rdx 0 : 536bc: je 536cd <::fmt+0xdd> 0 : 536be: and edx,0xf 0 : 536c1: movzx ecx,BYTE PTR [rdi+rdx*2+0x1] 0 : 536c6: mov BYTE PTR [rbp+rax*1-0x1d],cl 0 : 536ca: dec rax 0 : 536cd: mov r9d,0x14 0 : 536d3: sub r9,rax 0 : 536d6: lea r8,[rax+rbp*1] 0 : 536da: add r8,0xffffffffffffffe4 0 : 536de: mov edx,0x1 0 : 536e3: mov rdi,rsi 0 : 536e6: mov esi,0x1 0 : 536eb: xor ecx,ecx 0 : 536ed: call QWORD PTR [rip+0x4095] # 57788 <_DYNAMIC+0xa70> 0 : 536f3: add rsp,0x18 0 : 536f7: pop rbx 0 : 536f8: pop rbp 0 : 536f9: ret