Sorted summary for file /box/solution-bin ---------------------------------------------- 50.98 /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:57 32.73 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/../../stdarch/crates/core_arch/src/x86/avx2.rs:3783 4.55 /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:125 3.58 /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:91 2.75 /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ptr/mod.rs:547 1.82 /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:126 1.79 /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:96 0.91 /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:123 0.91 /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:0 Samples | Source code & Disassembly of /box/solution-bin for cpu_core/cycles/P (110 samples, percent: local period) ------------------------------------------------------------------------------------------------------------------------- : : : : 3 Disassembly of section .text: : : 5 0000000000014cb0 : : 6 use std::io::{Read, Write}; : 7 use std::arch::x86_64::*; : : 9 const T_J: usize = 256; : : 11 fn main() { 0 : 14cb0: push rbp 0 : 14cb1: mov rbp,rsp 0 : 14cb4: push r15 0 : 14cb6: push r14 0 : 14cb8: push r13 0 : 14cba: push r12 0 : 14cbc: push rbx 0 : 14cbd: sub rsp,0xc8 0 : 14cc4: call QWORD PTR [rip+0x422c6] # 56f90 <_DYNAMIC+0x258> 0 : 14cca: mov edi,0x20000 0 : 14ccf: mov esi,0x1 0 : 14cd4: call QWORD PTR [rip+0x422be] # 56f98 <_DYNAMIC+0x260> 0 : 14cda: test rax,rax 0 : 14cdd: je 1606c 0 : 14ce3: mov QWORD PTR [rbp-0xd0],0x20000 0 : 14cee: mov QWORD PTR [rbp-0xc8],rax 0 : 14cf5: mov QWORD PTR [rbp-0xc0],0x0 : 29 let mut input = Vec::with_capacity(1 << 17); : 30 std::io::stdin().lock().read_to_end(&mut input).unwrap(); 0 : 14d00: call QWORD PTR [rip+0x422a2] # 56fa8 <_DYNAMIC+0x270> 0 : 14d06: mov QWORD PTR [rbp-0x88],rax 0 : 14d0d: lea rdi,[rbp-0x88] 0 : 14d14: call QWORD PTR [rip+0x42296] # 56fb0 <_DYNAMIC+0x278> 0 : 14d1a: mov QWORD PTR [rbp-0x60],rax 0 : 14d1e: and dl,0x1 0 : 14d21: mov BYTE PTR [rbp-0x58],dl 0 : 14d24: lea rdi,[rbp-0x60] 0 : 14d28: lea rsi,[rbp-0xd0] 0 : 14d2f: call QWORD PTR [rip+0x42283] # 56fb8 <_DYNAMIC+0x280> 0 : 14d35: cmp rax,0x1 0 : 14d39: je 15fce 0 : 14d3f: mov rbx,QWORD PTR [rbp-0x60] 0 : 14d43: cmp BYTE PTR [rbp-0x58],0x0 0 : 14d47: jne 14d5f 0 : 14d49: mov rax,QWORD PTR [rip+0x42220] # 56f70 <_DYNAMIC+0x238> 0 : 14d50: mov rax,QWORD PTR [rax] 0 : 14d53: shl rax,1 0 : 14d56: test rax,rax 0 : 14d59: jne 16006 0 : 14d5f: xor eax,eax 0 : 14d61: xchg DWORD PTR [rbx],eax 0 : 14d63: cmp eax,0x2 0 : 14d66: je 15ff8 0 : 14d6c: mov r12,QWORD PTR [rbp-0xc8] 0 : 14d73: mov r13,QWORD PTR [rbp-0xc0] : : 58 fn parse_u64(bytes: &[u8], pos: &mut usize) -> u64 { : 59 let mut p = *pos; : 60 let mut v: u64 = 0; : 61 let len = bytes.len(); : 62 while p < len { 0 : 14d7a: test r13,r13 0 : 14d7d: je 14db4 0 : 14d7f: xor r11d,r11d 0 : 14d82: xor r10d,r10d 0 : 14d85: xor r15d,r15d 0 : 14d88: nop DWORD PTR [rax+rax*1+0x0] : 69 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 14d90: movzx eax,BYTE PTR [r12+r15*1] : 71 if c < b'0' || c > b'9' { 0 : 14d95: lea ecx,[rax-0x3a] 0 : 14d98: cmp cl,0xf6 0 : 14d9b: jb 14dba : 75 break; : 76 } : 77 v = v * 10 + (c - b'0') as u64; 0 : 14d9d: lea rcx,[r10+r10*4] 0 : 14da1: add al,0xd0 0 : 14da3: movzx eax,al 0 : 14da6: lea r10,[rax+rcx*2] : 82 p += 1; 0 : 14daa: inc r15 : 84 while p < len { 0 : 14dad: cmp r13,r15 0 : 14db0: jne 14d90 0 : 14db2: jmp 14e29 0 : 14db4: xor r15d,r15d 0 : 14db7: xor r10d,r10d : 90 } : : 92 fn skip_ws(bytes: &[u8], pos: &mut usize) { : 93 let len = bytes.len(); : 94 let mut p = *pos; : 95 while p < len { 0 : 14dba: cmp r15,r13 0 : 14dbd: jae 14df3 0 : 14dbf: movabs rax,0x100002600 0 : 14dc9: xor r11d,r11d 0 : 14dcc: nop DWORD PTR [rax+0x0] : 101 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 14dd0: movzx ecx,BYTE PTR [r12+r15*1] 0 : 14dd5: cmp rcx,0x20 : 104 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 14dd9: ja 150e7 0 : 14ddf: bt rax,rcx 0 : 14de3: jae 150e7 : 108 break; : 109 } : 110 p += 1; 0 : 14de9: inc r15 : 112 while p < len { 0 : 14dec: cmp r13,r15 0 : 14def: jne 14dd0 0 : 14df1: jmp 14e29 0 : 14df3: xor r11d,r11d 0 : 14df6: cmp r15,r13 0 : 14df9: jae 14e2c 0 : 14dfb: movabs rax,0x100002600 0 : 14e05: data16 cs nop WORD PTR [rax+rax*1+0x0] : 121 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 14e10: movzx ecx,BYTE PTR [r12+r15*1] 0 : 14e15: cmp rcx,0x20 : 124 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 14e19: ja 14e2c 0 : 14e1b: bt rax,rcx 0 : 14e1f: jae 14e2c : 128 p += 1; 0 : 14e21: inc r15 : 130 while p < len { 0 : 14e24: cmp r13,r15 0 : 14e27: jne 14e10 0 : 14e29: mov r15,r13 0 : 14e2c: movabs rdx,0x7ffffffffffffff8 0 : 14e36: movabs rax,0x1ffffffffffffffe 0 : 14e40: lea r14,[r10*8+0x0] 0 : 14e48: lea rsi,[rax+0x1] 0 : 14e4c: cmp r10,rsi 0 : 14e4f: seta al 0 : 14e52: cmp r14,rdx 0 : 14e55: seta cl 0 : 14e58: or cl,al 0 : 14e5a: je 14e6c 0 : 14e5c: xor edi,edi 0 : 14e5e: mov rsi,r14 0 : 14e61: call QWORD PTR [rip+0x42139] # 56fa0 <_DYNAMIC+0x268> 0 : 14e67: jmp 1606a 0 : 14e6c: test r14,r14 0 : 14e6f: mov QWORD PTR [rbp-0x80],r10 0 : 14e73: mov QWORD PTR [rbp-0xb0],r11 0 : 14e7a: je 14ec0 0 : 14e7c: mov QWORD PTR [rbp-0x48],rsi 0 : 14e80: call QWORD PTR [rip+0x4210a] # 56f90 <_DYNAMIC+0x258> 0 : 14e86: mov esi,0x8 0 : 14e8b: mov rdi,r14 0 : 14e8e: call QWORD PTR [rip+0x4212c] # 56fc0 <_DYNAMIC+0x288> 0 : 14e94: mov edi,0x8 0 : 14e99: test rax,rax 0 : 14e9c: je 14e5e 0 : 14e9e: mov rbx,rax 0 : 14ea1: mov r10,QWORD PTR [rbp-0x80] 0 : 14ea5: mov QWORD PTR [rbp-0x68],r10 0 : 14ea9: mov r11,QWORD PTR [rbp-0xb0] 0 : 14eb0: movabs rdx,0x7ffffffffffffff8 0 : 14eba: mov rsi,QWORD PTR [rbp-0x48] 0 : 14ebe: jmp 14ecd 0 : 14ec0: mov ebx,0x8 0 : 14ec5: mov QWORD PTR [rbp-0x68],0x0 0 : 14ecd: lea r14,[r11*8+0x0] 0 : 14ed5: cmp r11,rsi 0 : 14ed8: seta al 0 : 14edb: cmp r14,rdx 0 : 14ede: seta cl 0 : 14ee1: or cl,al 0 : 14ee3: je 14ef5 0 : 14ee5: xor edi,edi 0 : 14ee7: mov rsi,r14 0 : 14eea: call QWORD PTR [rip+0x420b0] # 56fa0 <_DYNAMIC+0x268> 0 : 14ef0: jmp 1606a 0 : 14ef5: test r14,r14 0 : 14ef8: je 14f42 0 : 14efa: call QWORD PTR [rip+0x42090] # 56f90 <_DYNAMIC+0x258> 0 : 14f00: mov esi,0x8 0 : 14f05: mov rdi,r14 0 : 14f08: call QWORD PTR [rip+0x420b2] # 56fc0 <_DYNAMIC+0x288> 0 : 14f0e: mov edi,0x8 0 : 14f13: mov QWORD PTR [rbp-0x48],rax 0 : 14f17: test rax,rax 0 : 14f1a: je 14ee7 0 : 14f1c: mov r11,QWORD PTR [rbp-0xb0] 0 : 14f23: mov QWORD PTR [rbp-0xb8],r11 0 : 14f2a: mov r10,QWORD PTR [rbp-0x80] 0 : 14f2e: movabs rdx,0x7ffffffffffffff8 0 : 14f38: test r10,r10 0 : 14f3b: jne 14f5f 0 : 14f3d: jmp 1515c 0 : 14f42: mov eax,0x8 0 : 14f47: mov QWORD PTR [rbp-0x48],rax 0 : 14f4b: mov QWORD PTR [rbp-0xb8],0x0 0 : 14f56: test r10,r10 0 : 14f59: je 1515c : 202 while p < len { 0 : 14f5f: cmp r10,0x1 0 : 14f63: jne 14f6c 0 : 14f65: xor eax,eax 0 : 14f67: jmp 1509a 0 : 14f6c: mov rcx,r10 0 : 14f6f: movabs rax,0x1ffffffffffffffe 0 : 14f79: and rcx,rax 0 : 14f7c: xor eax,eax 0 : 14f7e: movabs rdx,0x100002600 0 : 14f88: jmp 14fa4 0 : 14f8a: nop WORD PTR [rax+rax*1+0x0] : 214 a[i] = parse_u64(bytes, &mut pos); 0 : 14f90: mov QWORD PTR [rbx+rsi*8],rdi 0 : 14f94: mov r15,r13 0 : 14f97: add rax,0x2 0 : 14f9b: cmp rax,rcx 0 : 14f9e: je 15086 0 : 14fa4: xor esi,esi : 221 while p < len { 0 : 14fa6: cmp r15,r13 0 : 14fa9: jae 14fe0 0 : 14fab: nop DWORD PTR [rax+rax*1+0x0] : 225 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 14fb0: movzx edi,BYTE PTR [r12+r15*1] : 227 if c < b'0' || c > b'9' { 0 : 14fb5: lea r8d,[rdi-0x3a] 0 : 14fb9: cmp r8b,0xf6 0 : 14fbd: jb 14fe0 : 231 v = v * 10 + (c - b'0') as u64; 0 : 14fbf: lea rsi,[rsi+rsi*4] 0 : 14fc3: add dil,0xd0 0 : 14fc7: movzx edi,dil 0 : 14fcb: lea rsi,[rdi+rsi*2] : 236 p += 1; 0 : 14fcf: inc r15 : 238 while p < len { 0 : 14fd2: cmp r13,r15 1 : 14fd5: jne 14fb0 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:91 : 241 a[i] = parse_u64(bytes, &mut pos); 0 : 14fd7: mov QWORD PTR [rbx+rax*8],rsi 0 : 14fdb: jmp 15009 0 : 14fdd: nop DWORD PTR [rax] 0 : 14fe0: mov QWORD PTR [rbx+rax*8],rsi : 246 while p < len { 0 : 14fe4: cmp r15,r13 0 : 14fe7: jae 1500c 0 : 14fe9: nop DWORD PTR [rax+0x0] : 250 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 14ff0: movzx esi,BYTE PTR [r12+r15*1] 0 : 14ff5: cmp rsi,0x20 : 253 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 14ff9: ja 1500c 0 : 14ffb: bt rdx,rsi 0 : 14fff: jae 1500c : 257 p += 1; 0 : 15001: inc r15 : 259 while p < len { 0 : 15004: cmp r13,r15 0 : 15007: jne 14ff0 0 : 15009: mov r15,r13 0 : 1500c: mov rsi,rax 0 : 1500f: or rsi,0x1 0 : 15013: xor edi,edi : 266 while p < len { 0 : 15015: cmp r15,r13 0 : 15018: jae 15050 0 : 1501a: nop WORD PTR [rax+rax*1+0x0] : 270 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 15020: movzx r8d,BYTE PTR [r12+r15*1] : 272 if c < b'0' || c > b'9' { 0 : 15025: lea r9d,[r8-0x3a] 0 : 15029: cmp r9b,0xf6 0 : 1502d: jb 15050 : 276 v = v * 10 + (c - b'0') as u64; 1 : 1502f: lea rdi,[rdi+rdi*4] // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:96 0 : 15033: add r8b,0xd0 0 : 15037: movzx r8d,r8b 0 : 1503b: lea rdi,[r8+rdi*2] : 281 p += 1; 0 : 1503f: inc r15 : 283 while p < len { 0 : 15042: cmp r13,r15 1 : 15045: jne 15020 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:91 0 : 15047: jmp 14f90 0 : 1504c: nop DWORD PTR [rax+0x0] : 288 a[i] = parse_u64(bytes, &mut pos); 0 : 15050: mov QWORD PTR [rbx+rsi*8],rdi : 290 while p < len { 0 : 15054: cmp r15,r13 0 : 15057: jae 14f97 0 : 1505d: nop DWORD PTR [rax] : 294 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 15060: movzx esi,BYTE PTR [r12+r15*1] 0 : 15065: cmp rsi,0x20 : 297 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 15069: ja 14f97 0 : 1506f: bt rdx,rsi 0 : 15073: jae 14f97 : 301 p += 1; 0 : 15079: inc r15 : 303 while p < len { 0 : 1507c: cmp r13,r15 0 : 1507f: jne 15060 0 : 15081: jmp 14f94 : 307 while p < len { 0 : 15086: test r10b,0x1 0 : 1508a: movabs rdx,0x7ffffffffffffff8 0 : 15094: je 1515c 0 : 1509a: xor ecx,ecx 0 : 1509c: cmp r15,r13 0 : 1509f: jae 15125 0 : 150a5: data16 cs nop WORD PTR [rax+rax*1+0x0] : 315 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 150b0: movzx edx,BYTE PTR [r12+r15*1] : 317 if c < b'0' || c > b'9' { 0 : 150b5: lea esi,[rdx-0x3a] 0 : 150b8: cmp sil,0xf6 0 : 150bc: jb 1511b : 321 v = v * 10 + (c - b'0') as u64; 0 : 150be: lea rcx,[rcx+rcx*4] 0 : 150c2: add dl,0xd0 0 : 150c5: movzx edx,dl 0 : 150c8: lea rcx,[rdx+rcx*2] : 326 p += 1; 0 : 150cc: inc r15 : 328 while p < len { 0 : 150cf: cmp r13,r15 0 : 150d2: jne 150b0 : 331 a[i] = parse_u64(bytes, &mut pos); 0 : 150d4: mov QWORD PTR [rbx+rax*8],rcx 0 : 150d8: mov r15,r13 0 : 150db: movabs rdx,0x7ffffffffffffff8 0 : 150e5: jmp 1515c 0 : 150e7: xor r11d,r11d 0 : 150ea: nop WORD PTR [rax+rax*1+0x0] : 338 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 150f0: movzx eax,BYTE PTR [r12+r15*1] : 340 if c < b'0' || c > b'9' { 0 : 150f5: lea ecx,[rax-0x3a] 0 : 150f8: cmp cl,0xf6 0 : 150fb: jb 14df6 : 344 v = v * 10 + (c - b'0') as u64; 0 : 15101: lea rcx,[r11+r11*4] 0 : 15105: add al,0xd0 0 : 15107: movzx eax,al 0 : 1510a: lea r11,[rax+rcx*2] : 349 p += 1; 0 : 1510e: inc r15 : 351 while p < len { 0 : 15111: cmp r13,r15 0 : 15114: jne 150f0 0 : 15116: jmp 14e29 0 : 1511b: movabs rdx,0x7ffffffffffffff8 : 356 a[i] = parse_u64(bytes, &mut pos); 0 : 15125: mov QWORD PTR [rbx+rax*8],rcx : 358 while p < len { 0 : 15129: cmp r15,r13 0 : 1512c: jae 1515c 0 : 1512e: movabs rax,0x100002600 0 : 15138: nop DWORD PTR [rax+rax*1+0x0] : 363 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 15140: movzx ecx,BYTE PTR [r12+r15*1] 0 : 15145: cmp rcx,0x20 : 366 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 15149: ja 1515c 0 : 1514b: bt rax,rcx 0 : 1514f: jae 1515c : 370 p += 1; 0 : 15151: inc r15 : 372 while p < len { 0 : 15154: cmp r13,r15 0 : 15157: jne 15140 0 : 15159: mov r15,r13 0 : 1515c: test r11,r11 0 : 1515f: je 15349 : 378 while p < len { 0 : 15165: cmp r11,0x1 0 : 15169: jne 15172 0 : 1516b: xor eax,eax 0 : 1516d: jmp 152ba 0 : 15172: mov rcx,r11 0 : 15175: movabs rax,0x1ffffffffffffffe 0 : 1517f: and rcx,rax 0 : 15182: xor eax,eax 0 : 15184: movabs rdx,0x100002600 0 : 1518e: jmp 151a8 0 : 15190: mov r8,QWORD PTR [rbp-0x48] : 390 b[j] = parse_u64(bytes, &mut pos); 0 : 15194: mov QWORD PTR [r8+rsi*8],rdi 0 : 15198: mov r15,r13 0 : 1519b: add rax,0x2 0 : 1519f: cmp rax,rcx 0 : 151a2: je 152a6 0 : 151a8: xor esi,esi : 397 while p < len { 0 : 151aa: cmp r15,r13 0 : 151ad: jae 151f0 0 : 151af: nop : 401 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 151b0: movzx edi,BYTE PTR [r12+r15*1] : 403 if c < b'0' || c > b'9' { 0 : 151b5: lea r8d,[rdi-0x3a] 0 : 151b9: cmp r8b,0xf6 0 : 151bd: jb 151f0 : 407 v = v * 10 + (c - b'0') as u64; 1 : 151bf: lea rsi,[rsi+rsi*4] // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:96 0 : 151c3: add dil,0xd0 0 : 151c7: movzx edi,dil 0 : 151cb: lea rsi,[rdi+rsi*2] : 412 p += 1; 0 : 151cf: inc r15 : 414 while p < len { 0 : 151d2: cmp r13,r15 1 : 151d5: jne 151b0 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:91 0 : 151d7: mov rdi,QWORD PTR [rbp-0x48] : 418 b[j] = parse_u64(bytes, &mut pos); 0 : 151db: mov QWORD PTR [rdi+rax*8],rsi 0 : 151df: jmp 15219 0 : 151e1: data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] 0 : 151f0: mov rdi,QWORD PTR [rbp-0x48] 0 : 151f4: mov QWORD PTR [rdi+rax*8],rsi : 424 while p < len { 0 : 151f8: cmp r15,r13 0 : 151fb: jae 1521c 0 : 151fd: nop DWORD PTR [rax] : 428 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 15200: movzx esi,BYTE PTR [r12+r15*1] 0 : 15205: cmp rsi,0x20 : 431 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 15209: ja 1521c 0 : 1520b: bt rdx,rsi 0 : 1520f: jae 1521c : 435 p += 1; 0 : 15211: inc r15 : 437 while p < len { 0 : 15214: cmp r13,r15 0 : 15217: jne 15200 0 : 15219: mov r15,r13 0 : 1521c: mov rsi,rax 0 : 1521f: or rsi,0x1 0 : 15223: xor edi,edi : 444 while p < len { 0 : 15225: cmp r15,r13 0 : 15228: jae 15260 0 : 1522a: nop WORD PTR [rax+rax*1+0x0] : 448 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 15230: movzx r8d,BYTE PTR [r12+r15*1] : 450 if c < b'0' || c > b'9' { 0 : 15235: lea r9d,[r8-0x3a] 0 : 15239: cmp r9b,0xf6 0 : 1523d: jb 15260 : 454 v = v * 10 + (c - b'0') as u64; 0 : 1523f: lea rdi,[rdi+rdi*4] 0 : 15243: add r8b,0xd0 0 : 15247: movzx r8d,r8b 0 : 1524b: lea rdi,[r8+rdi*2] : 459 p += 1; 0 : 1524f: inc r15 : 461 while p < len { 0 : 15252: cmp r13,r15 1 : 15255: jne 15230 0 : 15257: jmp 15190 0 : 1525c: nop DWORD PTR [rax+0x0] 0 : 15260: mov r8,QWORD PTR [rbp-0x48] : 467 b[j] = parse_u64(bytes, &mut pos); 0 : 15264: mov QWORD PTR [r8+rsi*8],rdi : 469 while p < len { 0 : 15268: cmp r15,r13 0 : 1526b: jae 1519b 0 : 15271: data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] : 473 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 15280: movzx esi,BYTE PTR [r12+r15*1] 0 : 15285: cmp rsi,0x20 : 476 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 15289: ja 1519b 0 : 1528f: bt rdx,rsi 0 : 15293: jae 1519b : 480 p += 1; 0 : 15299: inc r15 : 482 while p < len { 0 : 1529c: cmp r13,r15 0 : 1529f: jne 15280 0 : 152a1: jmp 15198 : 486 while p < len { 0 : 152a6: test r11b,0x1 0 : 152aa: movabs rdx,0x7ffffffffffffff8 0 : 152b4: je 15349 0 : 152ba: xor ecx,ecx 0 : 152bc: cmp r15,r13 0 : 152bf: jae 15308 0 : 152c1: data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] : 494 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 152d0: movzx edx,BYTE PTR [r12+r15*1] : 496 if c < b'0' || c > b'9' { 0 : 152d5: lea esi,[rdx-0x3a] 0 : 152d8: cmp sil,0xf6 0 : 152dc: jb 15308 : 500 v = v * 10 + (c - b'0') as u64; 0 : 152de: lea rcx,[rcx+rcx*4] 0 : 152e2: add dl,0xd0 0 : 152e5: movzx edx,dl 0 : 152e8: lea rcx,[rdx+rcx*2] : 505 p += 1; 0 : 152ec: inc r15 : 507 while p < len { 0 : 152ef: cmp r13,r15 0 : 152f2: jne 152d0 0 : 152f4: mov rdx,QWORD PTR [rbp-0x48] : 511 b[j] = parse_u64(bytes, &mut pos); 0 : 152f8: mov QWORD PTR [rdx+rax*8],rcx 0 : 152fc: movabs rdx,0x7ffffffffffffff8 0 : 15306: jmp 15349 0 : 15308: mov rdx,QWORD PTR [rbp-0x48] 0 : 1530c: mov QWORD PTR [rdx+rax*8],rcx : 517 while p < len { 0 : 15310: cmp r15,r13 0 : 15313: movabs rdx,0x7ffffffffffffff8 0 : 1531d: jae 15349 0 : 1531f: movabs rax,0x100002600 0 : 15329: nop DWORD PTR [rax+0x0] : 523 let c = unsafe { *bytes.get_unchecked(p) }; 0 : 15330: movzx ecx,BYTE PTR [r12+r15*1] 0 : 15335: cmp rcx,0x20 : 526 if c != b' ' && c != b'\n' && c != b'\t' && c != b'\r' { 0 : 15339: ja 15349 0 : 1533b: bt rax,rcx 0 : 1533f: jae 15349 : 530 p += 1; 0 : 15341: inc r15 : 532 while p < len { 0 : 15344: cmp r13,r15 0 : 15347: jne 15330 0 : 15349: movabs r15,0xffffffffffffffc : 536 let m_pad = (m + 1) & !1; 0 : 15353: lea r8,[r11+0x1] 0 : 15357: movabs rax,0x1ffffffffffffffe 0 : 15361: and r8,rax 0 : 15364: mov r12,r8 0 : 15367: shl r12,0x4 0 : 1536b: lea rax,[r15+0x3] 0 : 1536f: cmp r11,rax 0 : 15372: sete al 0 : 15375: cmp r12,rdx 0 : 15378: seta cl 0 : 1537b: or cl,al 0 : 1537d: je 15393 0 : 1537f: xor r14d,r14d 0 : 15382: mov rdi,r14 0 : 15385: mov rsi,r12 0 : 15388: call QWORD PTR [rip+0x41c12] # 56fa0 <_DYNAMIC+0x268> 0 : 1538e: jmp 1606a : 554 let mut b_pad: Vec = vec![0u64; 2 * m_pad]; 0 : 15393: lea rax,[r8+r8*1] 0 : 15397: mov QWORD PTR [rbp-0x70],rax 0 : 1539b: test r12,r12 0 : 1539e: mov QWORD PTR [rbp-0xe0],r8 0 : 153a5: je 153f3 0 : 153a7: mov r13,r10 0 : 153aa: call QWORD PTR [rip+0x41be0] # 56f90 <_DYNAMIC+0x258> 0 : 153b0: mov r14d,0x8 0 : 153b6: mov esi,0x8 0 : 153bb: mov rdi,r12 0 : 153be: call QWORD PTR [rip+0x41bfc] # 56fc0 <_DYNAMIC+0x288> 0 : 153c4: mov QWORD PTR [rbp-0x78],rax 0 : 153c8: test rax,rax 0 : 153cb: je 15382 0 : 153cd: mov rsi,QWORD PTR [rbp-0x70] 0 : 153d1: mov r10,r13 0 : 153d4: mov r11,QWORD PTR [rbp-0xb0] 0 : 153db: mov r8,QWORD PTR [rbp-0xe0] 0 : 153e2: test r11,r11 0 : 153e5: mov QWORD PTR [rbp-0xe8],rsi 0 : 153ec: jne 1540e 0 : 153ee: jmp 15501 0 : 153f3: mov eax,0x8 0 : 153f8: mov QWORD PTR [rbp-0x78],rax 0 : 153fc: xor esi,esi 0 : 153fe: test r11,r11 0 : 15401: mov QWORD PTR [rbp-0xe8],rsi 0 : 15408: je 15501 0 : 1540e: lea rcx,[r11-0x1] 0 : 15412: cmp r8,rcx 0 : 15415: cmovb rcx,r8 0 : 15419: cmp rcx,0x3 0 : 1541d: ja 15426 0 : 1541f: xor eax,eax 0 : 15421: jmp 154d7 0 : 15426: mov rax,rcx 0 : 15429: inc rax 0 : 1542c: mov edx,eax 0 : 1542e: and edx,0x3 0 : 15431: mov esi,0x4 0 : 15436: cmovne rsi,rdx 0 : 1543a: sub rax,rsi 0 : 1543d: sub rcx,rsi 0 : 15440: mov QWORD PTR [rbp-0x98],rcx 0 : 15447: vmovdqa ymm0,YMMWORD PTR [rip+0xffffffffffff26b1] # 7b00 0 : 1544f: mov rdx,0xffffffffffffffff 0 : 15456: vpbroadcastq ymm1,QWORD PTR [rip+0xffffffffffff2739] # 7b98 0 : 1545f: mov r13,QWORD PTR [rbp-0x48] 0 : 15463: mov rcx,QWORD PTR [rbp-0x78] 0 : 15467: nop WORD PTR [rax+rax*1+0x0] : 605 b_pad[2 * j] = b[j]; 0 : 15470: vpaddq ymm2,ymm0,ymm0 0 : 15474: vmovq rsi,xmm2 0 : 15479: vpextrq rdi,xmm2,0x1 0 : 1547f: vextracti128 xmm2,ymm2,0x1 0 : 15485: vmovq r8,xmm2 0 : 1548a: vpextrq r9,xmm2,0x1 0 : 15490: mov r10,QWORD PTR [r13+rdx*8+0x8] 0 : 15495: mov r11,QWORD PTR [r13+rdx*8+0x10] 0 : 1549a: mov r14,QWORD PTR [r13+rdx*8+0x18] 0 : 1549f: mov r12,QWORD PTR [r13+rdx*8+0x20] 0 : 154a4: mov QWORD PTR [rcx+rsi*8],r10 0 : 154a8: mov QWORD PTR [rcx+rdi*8],r11 0 : 154ac: mov QWORD PTR [rcx+r8*8],r14 0 : 154b0: mov QWORD PTR [rcx+r9*8],r12 0 : 154b4: vpaddq ymm0,ymm0,ymm1 0 : 154b8: add rdx,0x4 0 : 154bc: cmp QWORD PTR [rbp-0x98],rdx 0 : 154c3: jne 15470 0 : 154c5: mov r10,QWORD PTR [rbp-0x80] 0 : 154c9: mov r11,QWORD PTR [rbp-0xb0] 0 : 154d0: mov r8,QWORD PTR [rbp-0xe0] 0 : 154d7: lea rdi,[rax+rax*1] 0 : 154db: mov rdx,QWORD PTR [rbp-0x78] 0 : 154df: nop 0 : 154e0: cmp r8,rax 0 : 154e3: je 16056 0 : 154e9: mov rcx,QWORD PTR [rbp-0x48] 0 : 154ed: mov rcx,QWORD PTR [rcx+rdi*4] 0 : 154f1: inc rax 0 : 154f4: mov QWORD PTR [rdx+rdi*8],rcx 0 : 154f8: add rdi,0x2 0 : 154fc: cmp r11,rax 0 : 154ff: jne 154e0 0 : 15501: lea rax,[r10+r11*1] 0 : 15505: mov rsi,rax 0 : 15508: shl rsi,0x4 0 : 1550c: add rsi,0x10 0 : 15510: lea rcx,[r15+0x2] 0 : 15514: cmp rax,rcx 0 : 15517: seta al 0 : 1551a: movabs rcx,0x7ffffffffffffff8 0 : 15524: add rcx,0xfffffffffffffff8 0 : 15528: cmp rsi,rcx 0 : 1552b: seta cl 0 : 1552e: or cl,al 0 : 15530: je 15546 0 : 15532: xor r14d,r14d 0 : 15535: mov rdi,r14 0 : 15538: vzeroupper 0 : 1553b: call QWORD PTR [rip+0x41a5f] # 56fa0 <_DYNAMIC+0x268> 0 : 15541: jmp 1606a 0 : 15546: mov r13,r11 0 : 15549: mov r12,r10 0 : 1554c: mov QWORD PTR [rbp-0x70],rsi 0 : 15550: vzeroupper 0 : 15553: call QWORD PTR [rip+0x41a37] # 56f90 <_DYNAMIC+0x258> 0 : 15559: mov r14d,0x10 0 : 1555f: mov esi,0x10 0 : 15564: mov rdi,QWORD PTR [rbp-0x70] 0 : 15568: call QWORD PTR [rip+0x41a52] # 56fc0 <_DYNAMIC+0x288> 0 : 1556e: mov rsi,QWORD PTR [rbp-0x70] 0 : 15572: mov QWORD PTR [rbp-0x90],rax 0 : 15579: test rax,rax 0 : 1557c: je 15535 0 : 1557e: lea rdi,[r12+r13*1] 0 : 15582: dec rdi 0 : 15585: test r12,r12 0 : 15588: mov QWORD PTR [rbp-0x98],rdi 0 : 1558f: mov r13,QWORD PTR [rbp-0xe0] : 675 while j_tile < m_pad { 0 : 15596: je 15784 0 : 1559c: test r13,r13 0 : 1559f: je 15784 0 : 155a5: mov rax,r12 : 680 while j < j_end { 0 : 155a8: lea rcx,[r12-0x1] 0 : 155ad: mov QWORD PTR [rbp-0xb0],rcx 0 : 155b4: mov ecx,eax 0 : 155b6: and ecx,0x3 0 : 155b9: and r15,r12 0 : 155bc: xor r8d,r8d 0 : 155bf: mov rdx,QWORD PTR [rbp-0x78] 0 : 155c3: mov rsi,QWORD PTR [rbp-0x90] 0 : 155ca: jmp 155f1 0 : 155cc: nop DWORD PTR [rax+0x0] : 691 while j_tile < m_pad { 0 : 155d0: add rsi,0x1000 0 : 155d7: add rdx,0x1000 0 : 155de: mov r8,rax 0 : 155e1: cmp rax,r13 0 : 155e4: mov rdi,QWORD PTR [rbp-0x98] 0 : 155eb: jae 15784 : 698 let j_end = (j_tile + T_J).min(m_pad); 0 : 155f1: lea rax,[r8+0x100] 0 : 155f8: cmp r13,rax 0 : 155fb: mov r9,rax 0 : 155fe: cmovb r9,r13 0 : 15602: cmp QWORD PTR [rbp-0xb0],0x3 : 704 while j < j_end { 0 : 1560a: jae 15620 0 : 1560c: xor r10d,r10d 0 : 1560f: jmp 1572b 0 : 15614: data16 data16 cs nop WORD PTR [rax+rax*1+0x0] 0 : 15620: mov r11,rsi 0 : 15623: xor r10d,r10d 0 : 15626: cs nop WORD PTR [rax+rax*1+0x0] 0 : 15630: vpbroadcastq ymm0,QWORD PTR [rbx+r10*8] 0 : 15636: xor r14d,r14d 0 : 15639: mov rdi,r8 0 : 1563c: nop DWORD PTR [rax+0x0] 0 : 15640: vpclmullqlqdq ymm1,ymm0,YMMWORD PTR [rdx+r14*1] 8 : 15647: vpxor ymm1,ymm1,YMMWORD PTR [r11+r14*1] // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/../../stdarch/crates/core_arch/src/x86/avx2.rs:3783 2 : 1564d: vmovdqu YMMWORD PTR [r11+r14*1],ymm1 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ptr/mod.rs:547 : 719 j += 2; 0 : 15653: add rdi,0x2 : 721 while j < j_end { 0 : 15657: add r14,0x20 0 : 1565b: cmp rdi,r9 11 : 1565e: jb 15640 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:57 0 : 15660: vpbroadcastq ymm0,QWORD PTR [rbx+r10*8+0x8] 0 : 15667: mov r14d,0x10 0 : 1566d: mov rdi,r8 0 : 15670: vpclmullqlqdq ymm1,ymm0,YMMWORD PTR [rdx+r14*1-0x10] 14 : 15678: vpxor ymm1,ymm1,YMMWORD PTR [r11+r14*1] // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/../../stdarch/crates/core_arch/src/x86/avx2.rs:3783 0 : 1567e: vmovdqu YMMWORD PTR [r11+r14*1],ymm1 : 731 j += 2; 0 : 15684: add rdi,0x2 : 733 while j < j_end { 0 : 15688: add r14,0x20 0 : 1568c: cmp rdi,r9 16 : 1568f: jb 15670 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:57 0 : 15691: vpbroadcastq ymm0,QWORD PTR [rbx+r10*8+0x10] 0 : 15698: mov r14d,0x20 0 : 1569e: mov rdi,r8 0 : 156a1: data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] 0 : 156b0: vpclmullqlqdq ymm1,ymm0,YMMWORD PTR [rdx+r14*1-0x20] 9 : 156b8: vpxor ymm1,ymm1,YMMWORD PTR [r11+r14*1] // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/../../stdarch/crates/core_arch/src/x86/avx2.rs:3783 1 : 156be: vmovdqu YMMWORD PTR [r11+r14*1],ymm1 // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/ptr/mod.rs:547 : 744 j += 2; 0 : 156c4: add rdi,0x2 : 746 while j < j_end { 0 : 156c8: add r14,0x20 0 : 156cc: cmp rdi,r9 14 : 156cf: jb 156b0 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:57 0 : 156d1: vpbroadcastq ymm0,QWORD PTR [rbx+r10*8+0x18] 0 : 156d8: mov r14d,0x30 0 : 156de: mov rdi,r8 0 : 156e1: data16 data16 data16 data16 data16 cs nop WORD PTR [rax+rax*1+0x0] 0 : 156f0: vpclmullqlqdq ymm1,ymm0,YMMWORD PTR [rdx+r14*1-0x30] 5 : 156f8: vpxor ymm1,ymm1,YMMWORD PTR [r11+r14*1] // /rustc/59807616e1fa2540724bfbac14d7976d7e4a3860/library/core/src/../../stdarch/crates/core_arch/src/x86/avx2.rs:3783 0 : 156fe: vmovdqu YMMWORD PTR [r11+r14*1],ymm1 : 757 j += 2; 0 : 15704: add rdi,0x2 : 759 while j < j_end { 1 : 15708: add r14,0x20 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:57 0 : 1570c: cmp rdi,r9 14 : 1570f: jb 156f0 0 : 15711: add r10,0x4 0 : 15715: add r11,0x40 0 : 15719: cmp r10,r15 0 : 1571c: jne 15630 0 : 15722: test rcx,rcx 0 : 15725: je 155d0 0 : 1572b: mov r11,r10 0 : 1572e: shl r11,0x4 0 : 15732: add r11,rsi 0 : 15735: xor r14d,r14d 0 : 15738: nop DWORD PTR [rax+rax*1+0x0] 0 : 15740: vpbroadcastq ymm0,QWORD PTR [rbx+r10*8] 0 : 15746: xor r12d,r12d 0 : 15749: mov rdi,r8 0 : 1574c: nop DWORD PTR [rax+0x0] 0 : 15750: vpclmullqlqdq ymm1,ymm0,YMMWORD PTR [rdx+r12*1] 0 : 15757: vpxor ymm1,ymm1,YMMWORD PTR [r11+r12*1] 0 : 1575d: vmovdqu YMMWORD PTR [r11+r12*1],ymm1 : 781 j += 2; 0 : 15763: add rdi,0x2 : 783 while j < j_end { 0 : 15767: add r12,0x20 0 : 1576b: cmp rdi,r9 0 : 1576e: jb 15750 0 : 15770: inc r10 0 : 15773: inc r14 0 : 15776: add r11,0x10 0 : 1577a: cmp r14,rcx 0 : 1577d: jne 15740 0 : 1577f: jmp 155d0 : 793 let mut out = Vec::with_capacity(out_len * 21); 0 : 15784: lea r14,[rdi+rdi*4] 0 : 15788: shl r14,0x2 0 : 1578c: add r14,rdi 0 : 1578f: mov r15,QWORD PTR [rbp-0x68] 0 : 15793: jns 157ac 0 : 15795: xor r12d,r12d 0 : 15798: mov rdi,r12 0 : 1579b: mov rsi,r14 0 : 1579e: vzeroupper 0 : 157a1: call QWORD PTR [rip+0x417f9] # 56fa0 <_DYNAMIC+0x268> 0 : 157a7: jmp 1606a 0 : 157ac: test rdi,rdi 0 : 157af: je 15e8a 0 : 157b5: vzeroupper 0 : 157b8: call QWORD PTR [rip+0x417d2] # 56f90 <_DYNAMIC+0x258> 0 : 157be: mov r12d,0x1 0 : 157c4: mov esi,0x1 0 : 157c9: mov rdi,r14 0 : 157cc: call QWORD PTR [rip+0x417c6] # 56f98 <_DYNAMIC+0x260> 0 : 157d2: test rax,rax 0 : 157d5: je 15798 0 : 157d7: mov QWORD PTR [rbp-0x60],r14 0 : 157db: mov QWORD PTR [rbp-0x58],rax 0 : 157df: mov QWORD PTR [rbp-0x50],0x0 0 : 157e7: mov eax,0x1b 0 : 157ec: vmovq xmm0,rax 0 : 157f1: vmovdqa XMMWORD PTR [rbp-0xe0],xmm0 0 : 157f9: xor r14d,r14d 0 : 157fc: mov rax,QWORD PTR [rbp-0x90] 0 : 15803: xor r15d,r15d 0 : 15806: jmp 15838 0 : 15808: nop DWORD PTR [rax+rax*1+0x0] 0 : 15810: mov rax,QWORD PTR [rbp-0x58] 0 : 15814: mov BYTE PTR [rax+r14*1],0x30 0 : 15819: inc r14 0 : 1581c: mov QWORD PTR [rbp-0x50],r14 0 : 15820: inc r15 0 : 15823: mov rax,QWORD PTR [rbp-0x80] 0 : 15827: add rax,0x10 0 : 1582b: cmp QWORD PTR [rbp-0x98],r15 0 : 15832: je 15e7e 0 : 15838: mov QWORD PTR [rbp-0x80],rax 0 : 1583c: vmovdqa xmm0,XMMWORD PTR [rax] 0 : 15840: vmovdqa XMMWORD PTR [rbp-0xb0],xmm0 : 838 if k > 0 { 0 : 15848: test r15,r15 0 : 1584b: je 1586d 0 : 1584d: cmp r14,QWORD PTR [rbp-0x60] 0 : 15851: jne 1585d 0 : 15853: lea rdi,[rbp-0x60] 0 : 15857: call QWORD PTR [rip+0x4176b] # 56fc8 <_DYNAMIC+0x290> 0 : 1585d: mov rax,QWORD PTR [rbp-0x58] 0 : 15861: mov BYTE PTR [rax+r14*1],0x20 0 : 15866: inc r14 0 : 15869: mov QWORD PTR [rbp-0x50],r14 0 : 1586d: vmovdqa xmm1,XMMWORD PTR [rbp-0xe0] 0 : 15875: vmovdqa xmm2,XMMWORD PTR [rbp-0xb0] 0 : 1587d: vpclmulhqlqdq xmm0,xmm2,xmm1 0 : 15883: vpclmulhqlqdq xmm1,xmm0,xmm1 0 : 15889: vpxor xmm0,xmm2,xmm0 0 : 1588d: vpxor xmm0,xmm0,xmm1 0 : 15891: vmovq rax,xmm0 : 856 } : 857 *pos = p; : 858 } : : 860 fn push_u64(buf: &mut Vec, mut v: u64) { : 861 if v == 0 { 0 : 15896: test rax,rax 0 : 15899: je 15e50 : 864 buf.push(b'0'); : 865 return; : 866 } : 867 let mut digits = [0u8; 20]; 0 : 1589f: vpxor xmm0,xmm0,xmm0 0 : 158a3: vmovdqa XMMWORD PTR [rbp-0x40],xmm0 0 : 158a8: mov DWORD PTR [rbp-0x31],0x0 : 871 let mut i = 20; : 872 while v > 0 { : 873 i -= 1; : 874 digits[i] = b'0' + (v % 10) as u8; : 875 v /= 10; 0 : 158af: mov rdx,rax 0 : 158b2: movabs rcx,0xcccccccccccccccd 0 : 158bc: mulx rdx,rdx,rcx 0 : 158c1: shr rdx,0x3 0 : 158c5: lea ecx,[rdx+rdx*1] 0 : 158c8: lea ecx,[rcx+rcx*4] 0 : 158cb: mov esi,eax 0 : 158cd: sub esi,ecx : 884 digits[i] = b'0' + (v % 10) as u8; 0 : 158cf: or sil,0x30 0 : 158d3: mov BYTE PTR [rbp-0x2d],sil 0 : 158d7: mov r12d,0x1 0 : 158dd: lea r13,[rbp-0x2d] : 889 while v > 0 { 0 : 158e1: cmp rax,0x9 0 : 158e5: jbe 15e20 : 892 digits[i] = b'0' + (v % 10) as u8; 1 : 158eb: movabs rcx,0x199999999999999a // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:125 0 : 158f5: mulx rcx,rcx,rcx 0 : 158fa: add ecx,ecx 0 : 158fc: lea ecx,[rcx+rcx*4] 0 : 158ff: sub edx,ecx 0 : 15901: or dl,0x30 0 : 15904: mov BYTE PTR [rbp-0x2e],dl 0 : 15907: mov r12d,0x2 0 : 1590d: lea r13,[rbp-0x2e] : 902 while v > 0 { 0 : 15911: cmp rax,0x64 0 : 15915: jb 15e20 : 905 v /= 10; 0 : 1591b: mov rdx,rax 0 : 1591e: shr rdx,0x2 0 : 15922: movabs rcx,0x28f5c28f5c28f5c3 0 : 1592c: mulx rdx,rdx,rcx 0 : 15931: shr rdx,0x2 : 911 digits[i] = b'0' + (v % 10) as u8; 0 : 15935: movabs rcx,0x199999999999999a 0 : 1593f: mulx rcx,rcx,rcx 0 : 15944: add ecx,ecx 0 : 15946: lea ecx,[rcx+rcx*4] 0 : 15949: sub edx,ecx 0 : 1594b: or dl,0x30 0 : 1594e: mov BYTE PTR [rbp-0x2f],dl 0 : 15951: mov r12d,0x3 0 : 15957: lea r13,[rbp-0x2f] : 921 while v > 0 { 0 : 1595b: cmp rax,0x3e8 0 : 15961: jb 15e20 : 924 v /= 10; 0 : 15967: mov rdx,rax 0 : 1596a: shr rdx,0x3 0 : 1596e: movabs rcx,0x20c49ba5e353f7cf 0 : 15978: mulx rdx,rdx,rcx 0 : 1597d: shr rdx,0x4 : 930 digits[i] = b'0' + (v % 10) as u8; 0 : 15981: movabs rcx,0x199999999999999a 0 : 1598b: mulx rcx,rcx,rcx 0 : 15990: add ecx,ecx 0 : 15992: lea ecx,[rcx+rcx*4] 0 : 15995: sub edx,ecx 0 : 15997: or dl,0x30 0 : 1599a: mov BYTE PTR [rbp-0x30],dl 0 : 1599d: mov r12d,0x4 0 : 159a3: lea r13,[rbp-0x30] : 940 while v > 0 { 0 : 159a7: cmp rax,0x2710 0 : 159ad: jb 15e20 : 943 v /= 10; 0 : 159b3: mov rdx,rax 0 : 159b6: movabs rcx,0x346dc5d63886594b 0 : 159c0: mulx rdx,rdx,rcx 0 : 159c5: shr rdx,0xb : 948 digits[i] = b'0' + (v % 10) as u8; 0 : 159c9: movabs rcx,0x199999999999999a 0 : 159d3: mulx rcx,rcx,rcx 0 : 159d8: add ecx,ecx 0 : 159da: lea ecx,[rcx+rcx*4] 0 : 159dd: sub edx,ecx 0 : 159df: or dl,0x30 0 : 159e2: mov BYTE PTR [rbp-0x31],dl 1 : 159e5: mov r12d,0x5 0 : 159eb: lea r13,[rbp-0x31] : 958 while v > 0 { 0 : 159ef: cmp rax,0x186a0 0 : 159f5: jb 15e20 : 961 v /= 10; 0 : 159fb: mov rdx,rax 1 : 159fe: shr rdx,0x5 // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:126 0 : 15a02: movabs rcx,0xa7c5ac471b47843 0 : 15a0c: mulx rdx,rdx,rcx 0 : 15a11: shr rdx,0x7 : 967 digits[i] = b'0' + (v % 10) as u8; 0 : 15a15: movabs rcx,0x199999999999999a 0 : 15a1f: mulx rcx,rcx,rcx 0 : 15a24: add ecx,ecx 0 : 15a26: lea ecx,[rcx+rcx*4] 0 : 15a29: sub edx,ecx 0 : 15a2b: or dl,0x30 0 : 15a2e: mov BYTE PTR [rbp-0x32],dl 0 : 15a31: mov r12d,0x6 0 : 15a37: lea r13,[rbp-0x32] : 977 while v > 0 { 0 : 15a3b: cmp rax,0xf4240 0 : 15a41: jb 15e20 : 980 v /= 10; 0 : 15a47: mov rdx,rax 0 : 15a4a: movabs rcx,0x431bde82d7b634db 0 : 15a54: mulx rdx,rdx,rcx 0 : 15a59: shr rdx,0x12 : 985 digits[i] = b'0' + (v % 10) as u8; 0 : 15a5d: movabs rcx,0x199999999999999a 0 : 15a67: mulx rcx,rcx,rcx 0 : 15a6c: add ecx,ecx 0 : 15a6e: lea ecx,[rcx+rcx*4] 0 : 15a71: sub edx,ecx 0 : 15a73: or dl,0x30 0 : 15a76: mov BYTE PTR [rbp-0x33],dl 0 : 15a79: mov r12d,0x7 0 : 15a7f: lea r13,[rbp-0x33] : 995 while v > 0 { 0 : 15a83: cmp rax,0x989680 0 : 15a89: jb 15e20 : 998 v /= 10; 0 : 15a8f: mov rdx,rax 0 : 15a92: movabs rcx,0xd6bf94d5e57a42bd 0 : 15a9c: mulx rdx,rdx,rcx 0 : 15aa1: shr rdx,0x17 : 1003 digits[i] = b'0' + (v % 10) as u8; 0 : 15aa5: movabs rcx,0x199999999999999a 0 : 15aaf: mulx rcx,rcx,rcx 0 : 15ab4: add ecx,ecx 0 : 15ab6: lea ecx,[rcx+rcx*4] 0 : 15ab9: sub edx,ecx 0 : 15abb: or dl,0x30 0 : 15abe: mov BYTE PTR [rbp-0x34],dl 0 : 15ac1: mov r12d,0x8 0 : 15ac7: lea r13,[rbp-0x34] : 1013 while v > 0 { 0 : 15acb: cmp rax,0x5f5e100 0 : 15ad1: jb 15e20 : 1016 v /= 10; 0 : 15ad7: mov rdx,rax 0 : 15ada: movabs rcx,0xabcc77118461cefd 0 : 15ae4: mulx rdx,rdx,rcx 0 : 15ae9: shr rdx,0x1a : 1021 digits[i] = b'0' + (v % 10) as u8; 0 : 15aed: movabs rcx,0x199999999999999a 0 : 15af7: mulx rcx,rcx,rcx 0 : 15afc: add ecx,ecx 0 : 15afe: lea ecx,[rcx+rcx*4] 0 : 15b01: sub edx,ecx 0 : 15b03: or dl,0x30 0 : 15b06: mov BYTE PTR [rbp-0x35],dl 0 : 15b09: mov r12d,0x9 0 : 15b0f: lea r13,[rbp-0x35] : 1031 while v > 0 { 0 : 15b13: cmp rax,0x3b9aca00 0 : 15b19: jb 15e20 : 1034 v /= 10; 0 : 15b1f: mov rdx,rax 0 : 15b22: shr rdx,0x9 0 : 15b26: movabs rcx,0x44b82fa09b5a53 0 : 15b30: mulx rdx,rdx,rcx 0 : 15b35: shr rdx,0xb : 1040 digits[i] = b'0' + (v % 10) as u8; 0 : 15b39: movabs rcx,0x199999999999999a 0 : 15b43: mulx rcx,rcx,rcx 0 : 15b48: add ecx,ecx 0 : 15b4a: lea ecx,[rcx+rcx*4] 0 : 15b4d: sub edx,ecx 0 : 15b4f: or dl,0x30 0 : 15b52: mov BYTE PTR [rbp-0x36],dl : 1048 while v > 0 { 0 : 15b55: mov rcx,rax 0 : 15b58: shr rcx,0xa 0 : 15b5c: mov r12d,0xa 0 : 15b62: lea r13,[rbp-0x36] 0 : 15b66: cmp rcx,0x9502f9 0 : 15b6d: jb 15e20 : 1055 v /= 10; 0 : 15b73: mov rdx,rax 0 : 15b76: movabs rcx,0xdbe6fecebdedd5bf 0 : 15b80: mulx rcx,rcx,rcx 0 : 15b85: shr rcx,0x21 : 1060 digits[i] = b'0' + (v % 10) as u8; 0 : 15b89: imul rdx,rcx,0x66666667 0 : 15b90: shr rdx,0x22 0 : 15b94: add edx,edx 0 : 15b96: lea edx,[rdx+rdx*4] 0 : 15b99: sub ecx,edx 0 : 15b9b: or cl,0x30 0 : 15b9e: mov BYTE PTR [rbp-0x37],cl : 1068 while v > 0 { 0 : 15ba1: mov rcx,rax 0 : 15ba4: shr rcx,0xb 0 : 15ba8: mov r12d,0xb 0 : 15bae: lea r13,[rbp-0x37] 0 : 15bb2: cmp rcx,0x2e90edd 0 : 15bb9: jb 15e20 : 1075 v /= 10; 0 : 15bbf: mov rdx,rax 0 : 15bc2: movabs rcx,0xafebff0bcb24aaff 0 : 15bcc: mulx rcx,rcx,rcx 0 : 15bd1: shr rcx,0x24 : 1080 digits[i] = b'0' + (v % 10) as u8; 0 : 15bd5: imul rdx,rcx,0x1999999a 0 : 15bdc: shr rdx,0x20 0 : 15be0: add edx,edx 0 : 15be2: lea edx,[rdx+rdx*4] 0 : 15be5: sub ecx,edx 0 : 15be7: or cl,0x30 0 : 15bea: mov BYTE PTR [rbp-0x38],cl : 1088 while v > 0 { 0 : 15bed: mov rcx,rax 0 : 15bf0: shr rcx,0xc 1 : 15bf4: mov r12d,0xc // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:123 0 : 15bfa: lea r13,[rbp-0x38] 0 : 15bfe: cmp rcx,0xe8d4a51 0 : 15c05: jb 15e20 : 1095 v /= 10; 0 : 15c0b: mov rdx,rax 0 : 15c0e: movabs rcx,0x232f33025bd42233 0 : 15c18: mulx rcx,rcx,rcx 0 : 15c1d: shr rcx,0x25 : 1100 digits[i] = b'0' + (v % 10) as u8; 0 : 15c21: imul rdx,rcx,0x1999999a 0 : 15c28: shr rdx,0x20 0 : 15c2c: add edx,edx 0 : 15c2e: lea edx,[rdx+rdx*4] 0 : 15c31: sub ecx,edx 0 : 15c33: or cl,0x30 0 : 15c36: mov BYTE PTR [rbp-0x39],cl : 1108 while v > 0 { 0 : 15c39: mov rcx,rax 0 : 15c3c: shr rcx,0xd 0 : 15c40: mov r12d,0xd 0 : 15c46: lea r13,[rbp-0x39] 0 : 15c4a: cmp rcx,0x48c27395 0 : 15c51: jb 15e20 : 1115 v /= 10; 0 : 15c57: mov rdx,rax 0 : 15c5a: movabs rcx,0x384b84d092ed0385 0 : 15c64: mulx rcx,rcx,rcx 0 : 15c69: shr rcx,0x29 : 1120 digits[i] = b'0' + (v % 10) as u8; 0 : 15c6d: imul rdx,rcx,0x1999999a 0 : 15c74: shr rdx,0x20 0 : 15c78: add edx,edx 0 : 15c7a: lea edx,[rdx+rdx*4] 0 : 15c7d: sub ecx,edx 0 : 15c7f: or cl,0x30 0 : 15c82: mov BYTE PTR [rbp-0x3a],cl 0 : 15c85: mov r12d,0xe 0 : 15c8b: lea r13,[rbp-0x3a] : 1130 while v > 0 { 0 : 15c8f: movabs rcx,0x5af3107a4000 0 : 15c99: cmp rax,rcx 0 : 15c9c: jb 15e20 : 1134 v /= 10; 0 : 15ca2: mov rdx,rax 0 : 15ca5: movabs rcx,0xb424dc35095cd81 0 : 15caf: mulx rcx,rcx,rcx 1 : 15cb4: shr rcx,0x2a // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:126 : 1139 digits[i] = b'0' + (v % 10) as u8; 0 : 15cb8: imul rdx,rcx,0x1999999a 0 : 15cbf: shr rdx,0x20 0 : 15cc3: add edx,edx 0 : 15cc5: lea edx,[rdx+rdx*4] 0 : 15cc8: sub ecx,edx 0 : 15cca: or cl,0x30 0 : 15ccd: mov BYTE PTR [rbp-0x3b],cl 0 : 15cd0: mov r12d,0xf 0 : 15cd6: lea r13,[rbp-0x3b] : 1149 while v > 0 { 0 : 15cda: movabs rcx,0x38d7ea4c68000 0 : 15ce4: cmp rax,rcx 0 : 15ce7: jb 15e20 : 1153 v /= 10; 0 : 15ced: mov rdx,rax 0 : 15cf0: shr rdx,0xf 0 : 15cf4: movabs rcx,0x24075f3dceac3 0 : 15cfe: mulx rcx,rcx,rcx 0 : 15d03: shr rcx,0x14 : 1159 digits[i] = b'0' + (v % 10) as u8; 0 : 15d07: imul edx,ecx,0x6667 0 : 15d0d: shr edx,0x11 0 : 15d10: and edx,0xfffffffe 0 : 15d13: lea edx,[rdx+rdx*4] 1 : 15d16: sub ecx,edx // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:125 0 : 15d18: or cl,0x30 0 : 15d1b: mov BYTE PTR [rbp-0x3c],cl 0 : 15d1e: mov r12d,0x10 0 : 15d24: lea r13,[rbp-0x3c] : 1169 while v > 0 { 0 : 15d28: movabs rcx,0x2386f26fc10000 0 : 15d32: cmp rax,rcx 0 : 15d35: jb 15e20 : 1173 v /= 10; 0 : 15d3b: mov rdx,rax 0 : 15d3e: movabs rcx,0x39a5652fb1137857 0 : 15d48: mulx rcx,rcx,rcx 0 : 15d4d: shr rcx,0x33 : 1178 digits[i] = b'0' + (v % 10) as u8; 0 : 15d51: imul edx,ecx,0x199a 0 : 15d57: shr edx,0xf 0 : 15d5a: and edx,0xfffffffe 0 : 15d5d: lea edx,[rdx+rdx*4] 0 : 15d60: sub ecx,edx 0 : 15d62: or cl,0x30 0 : 15d65: mov BYTE PTR [rbp-0x3d],cl 0 : 15d68: mov r12d,0x11 0 : 15d6e: lea r13,[rbp-0x3d] : 1188 while v > 0 { 0 : 15d72: movabs rcx,0x16345785d8a0000 0 : 15d7c: cmp rax,rcx 0 : 15d7f: jb 15e20 : 1192 v /= 10; 0 : 15d85: mov rdx,rax 0 : 15d88: shr rdx,0x11 0 : 15d8c: movabs rcx,0x5c3bd5191b53 0 : 15d96: mulx rcx,rcx,rcx 0 : 15d9b: shr ecx,0x16 : 1198 digits[i] = b'0' + (v % 10) as u8; 0 : 15d9e: imul edx,ecx,0xcd 0 : 15da4: shr edx,0xa 0 : 15da7: and edx,0xfffffffe 0 : 15daa: lea edx,[rdx+rdx*4] 0 : 15dad: sub cl,dl 1 : 15daf: or cl,0x30 0 : 15db2: mov BYTE PTR [rbp-0x3e],cl 0 : 15db5: mov r12d,0x12 0 : 15dbb: lea r13,[rbp-0x3e] : 1208 while v > 0 { 0 : 15dbf: movabs rcx,0xde0b6b3a7640000 0 : 15dc9: cmp rax,rcx 0 : 15dcc: jb 15e20 : 1212 v /= 10; 0 : 15dce: mov rdx,rax 0 : 15dd1: shr rdx,0x12 0 : 15dd5: movabs rcx,0x49c97747490f 0 : 15ddf: mulx rcx,rcx,rcx 0 : 15de4: shr ecx,0x18 : 1218 digits[i] = b'0' + (v % 10) as u8; 0 : 15de7: lea edx,[rcx-0xa] 0 : 15dea: movabs rsi,0x8ac7230489e80000 0 : 15df4: cmp rax,rsi 0 : 15df7: movzx edx,dl 0 : 15dfa: cmovb edx,ecx 0 : 15dfd: or dl,0x30 0 : 15e00: mov BYTE PTR [rbp-0x3f],dl 0 : 15e03: mov r12d,0x13 1 : 15e09: lea r13,[rbp-0x3f] 0 : 15e0d: cmp rax,rsi : 1229 while v > 0 { 0 : 15e10: jb 15e20 : 1231 digits[i] = b'0' + (v % 10) as u8; 0 : 15e12: mov BYTE PTR [rbp-0x40],0x31 0 : 15e16: mov r12d,0x14 1 : 15e1c: lea r13,[rbp-0x40] // /tmp/cpu-mode-161014-1777968445871320811-13/solution/solution.rs:0 0 : 15e20: mov rax,QWORD PTR [rbp-0x60] 0 : 15e24: sub rax,r14 0 : 15e27: cmp r12,rax 0 : 15e2a: ja 15e69 0 : 15e2c: mov rdi,QWORD PTR [rbp-0x58] 0 : 15e30: add rdi,r14 0 : 15e33: mov rsi,r13 0 : 15e36: mov rdx,r12 0 : 15e39: call QWORD PTR [rip+0x41191] # 56fd0 0 : 15e3f: add r14,r12 0 : 15e42: jmp 1581c 0 : 15e47: nop WORD PTR [rax+rax*1+0x0] 0 : 15e50: cmp r14,QWORD PTR [rbp-0x60] 0 : 15e54: jne 15810 0 : 15e5a: lea rdi,[rbp-0x60] 0 : 15e5e: call QWORD PTR [rip+0x41164] # 56fc8 <_DYNAMIC+0x290> 0 : 15e64: jmp 15810 0 : 15e69: lea rdi,[rbp-0x60] 0 : 15e6d: mov rsi,r14 0 : 15e70: mov rdx,r12 0 : 15e73: call 14c30 ::reserve::do_reserve_and_handle> 0 : 15e78: mov r14,QWORD PTR [rbp-0x50] 0 : 15e7c: jmp 15e2c 0 : 15e7e: cmp r14,QWORD PTR [rbp-0x60] 0 : 15e82: mov r15,QWORD PTR [rbp-0x68] 0 : 15e86: je 15ea1 0 : 15e88: jmp 15eae 0 : 15e8a: mov QWORD PTR [rbp-0x60],r14 0 : 15e8e: mov QWORD PTR [rbp-0x58],0x1 0 : 15e96: mov QWORD PTR [rbp-0x50],0x0 0 : 15e9e: xor r14d,r14d 0 : 15ea1: lea rdi,[rbp-0x60] 0 : 15ea5: vzeroupper 0 : 15ea8: call QWORD PTR [rip+0x4111a] # 56fc8 <_DYNAMIC+0x290> 0 : 15eae: mov rax,QWORD PTR [rbp-0x58] 0 : 15eb2: mov BYTE PTR [rax+r14*1],0xa : 1271 out 0 : 15eb7: mov r13,QWORD PTR [rbp-0x60] 0 : 15ebb: mov r12,QWORD PTR [rbp-0x58] 0 : 15ebf: mov edx,0x10 0 : 15ec4: mov rdi,QWORD PTR [rbp-0x90] 0 : 15ecb: mov rsi,QWORD PTR [rbp-0x70] 0 : 15ecf: call QWORD PTR [rip+0x41093] # 56f68 <_DYNAMIC+0x230> 0 : 15ed5: mov rsi,QWORD PTR [rbp-0xe8] 0 : 15edc: test rsi,rsi 0 : 15edf: je 15ef4 0 : 15ee1: shl rsi,0x3 0 : 15ee5: mov edx,0x8 0 : 15eea: mov rdi,QWORD PTR [rbp-0x78] 0 : 15eee: call QWORD PTR [rip+0x41074] # 56f68 <_DYNAMIC+0x230> : 1285 std::io::stdout().lock().write_all(&out).unwrap(); 0 : 15ef4: call QWORD PTR [rip+0x410de] # 56fd8 <_DYNAMIC+0x2a0> 0 : 15efa: mov QWORD PTR [rbp-0x40],rax 0 : 15efe: lea rdi,[rbp-0x40] 0 : 15f02: call QWORD PTR [rip+0x410d8] # 56fe0 <_DYNAMIC+0x2a8> 0 : 15f08: inc r14 0 : 15f0b: mov QWORD PTR [rbp-0x88],rax 0 : 15f12: lea rdi,[rbp-0x88] 0 : 15f19: mov rsi,r12 0 : 15f1c: mov rdx,r14 0 : 15f1f: call QWORD PTR [rip+0x410c3] # 56fe8 <_DYNAMIC+0x2b0> 0 : 15f25: test rax,rax 0 : 15f28: jne 1601d 0 : 15f2e: mov rdi,QWORD PTR [rbp-0x88] 0 : 15f35: dec DWORD PTR [rdi+0xc] 0 : 15f38: jne 15f4f 0 : 15f3a: mov QWORD PTR [rdi],0x0 0 : 15f41: xor eax,eax 0 : 15f43: xchg DWORD PTR [rdi+0x8],eax 0 : 15f46: cmp eax,0x2 0 : 15f49: je 16047 0 : 15f4f: test r13,r13 0 : 15f52: je 15f65 0 : 15f54: mov edx,0x1 0 : 15f59: mov rdi,r12 0 : 15f5c: mov rsi,r13 0 : 15f5f: call QWORD PTR [rip+0x41003] # 56f68 <_DYNAMIC+0x230> 0 : 15f65: mov rsi,QWORD PTR [rbp-0xb8] 0 : 15f6c: test rsi,rsi 0 : 15f6f: je 15f84 0 : 15f71: shl rsi,0x3 0 : 15f75: mov edx,0x8 0 : 15f7a: mov rdi,QWORD PTR [rbp-0x48] 0 : 15f7e: call QWORD PTR [rip+0x40fe4] # 56f68 <_DYNAMIC+0x230> 0 : 15f84: test r15,r15 0 : 15f87: je 15f9e 0 : 15f89: shl r15,0x3 0 : 15f8d: mov edx,0x8 0 : 15f92: mov rdi,rbx 0 : 15f95: mov rsi,r15 0 : 15f98: call QWORD PTR [rip+0x40fca] # 56f68 <_DYNAMIC+0x230> 0 : 15f9e: mov rsi,QWORD PTR [rbp-0xd0] 0 : 15fa5: test rsi,rsi 0 : 15fa8: je 15fbc 0 : 15faa: mov rdi,QWORD PTR [rbp-0xc8] 0 : 15fb1: mov edx,0x1 0 : 15fb6: call QWORD PTR [rip+0x40fac] # 56f68 <_DYNAMIC+0x230> : 1332 } 0 : 15fbc: add rsp,0xc8 0 : 15fc3: pop rbx 0 : 15fc4: pop r12 0 : 15fc6: pop r13 0 : 15fc8: pop r14 0 : 15fca: pop r15 0 : 15fcc: pop rbp 0 : 15fcd: ret 0 : 15fce: mov QWORD PTR [rbp-0x40],rdx 0 : 15fd2: lea rdi,[rip+0xffffffffffff1bc7] # 7ba0 0 : 15fd9: lea rcx,[rip+0x3f008] # 54fe8 <__frame_dummy_init_array_entry+0x38> 0 : 15fe0: lea r8,[rip+0x3f039] # 55020 <__frame_dummy_init_array_entry+0x70> 0 : 15fe7: lea rdx,[rbp-0x40] 0 : 15feb: mov esi,0x2b 0 : 15ff0: call QWORD PTR [rip+0x40ffa] # 56ff0 <_DYNAMIC+0x2b8> 0 : 15ff6: jmp 1606a 0 : 15ff8: mov rdi,rbx 0 : 15ffb: call QWORD PTR [rip+0x40f77] # 56f78 <_DYNAMIC+0x240> 0 : 16001: jmp 14d6c 0 : 16006: call QWORD PTR [rip+0x40f74] # 56f80 <_DYNAMIC+0x248> 0 : 1600c: test al,al 0 : 1600e: jne 14d5f 0 : 16014: mov BYTE PTR [rbx+0x4],0x1 0 : 16018: jmp 14d5f 0 : 1601d: mov QWORD PTR [rbp-0x60],rax 0 : 16021: lea rdi,[rip+0xffffffffffff1b78] # 7ba0 0 : 16028: lea rcx,[rip+0x3efb9] # 54fe8 <__frame_dummy_init_array_entry+0x38> 0 : 1602f: lea r8,[rip+0x3f002] # 55038 <__frame_dummy_init_array_entry+0x88> 0 : 16036: lea rdx,[rbp-0x60] 0 : 1603a: mov esi,0x2b 0 : 1603f: call QWORD PTR [rip+0x40fab] # 56ff0 <_DYNAMIC+0x2b8> 0 : 16045: jmp 1606a 0 : 16047: add rdi,0x8 0 : 1604b: call QWORD PTR [rip+0x40f27] # 56f78 <_DYNAMIC+0x240> 0 : 16051: jmp 15f4f 0 : 16056: lea rdx,[rip+0x3efab] # 55008 <__frame_dummy_init_array_entry+0x58> 0 : 1605d: mov rsi,QWORD PTR [rbp-0x70] 0 : 16061: vzeroupper 0 : 16064: call QWORD PTR [rip+0x40f8e] # 56ff8 <_DYNAMIC+0x2c0> 0 : 1606a: ud2 0 : 1606c: mov edi,0x1 0 : 16071: mov esi,0x20000 0 : 16076: call QWORD PTR [rip+0x40f24] # 56fa0 <_DYNAMIC+0x268> 0 : 1607c: jmp 16088 0 : 1607e: mov r14,rax 0 : 16081: jmp 160bd 0 : 16083: mov r14,rax 0 : 16086: jmp 160c9 0 : 16088: mov r14,rax 0 : 1608b: mov rsi,QWORD PTR [rbp-0x60] 0 : 1608f: test rsi,rsi 0 : 16092: je 160a3 0 : 16094: mov rdi,QWORD PTR [rbp-0x58] 0 : 16098: mov edx,0x1 0 : 1609d: call QWORD PTR [rip+0x40ec5] # 56f68 <_DYNAMIC+0x230> 0 : 160a3: mov r15,QWORD PTR [rbp-0x68] 0 : 160a7: jmp 1613f 0 : 160ac: mov r14,rax 0 : 160af: jmp 1611f 0 : 160b1: mov r14,rax 0 : 160b4: lea rdi,[rbp-0x60] 0 : 160b8: call 14a70 > : 1395 std::io::stdout().lock().write_all(&out).unwrap(); 0 : 160bd: mov rdi,QWORD PTR [rbp-0x88] 0 : 160c4: call 14b70 > 0 : 160c9: test r13,r13 0 : 160cc: jne 160e7 0 : 160ce: mov r15,QWORD PTR [rbp-0x68] 0 : 160d2: mov rsi,QWORD PTR [rbp-0xb8] 0 : 160d9: test rsi,rsi 0 : 160dc: je 16176 0 : 160e2: jmp 161b1 0 : 160e7: mov edx,0x1 0 : 160ec: mov rdi,r12 0 : 160ef: mov rsi,r13 0 : 160f2: call QWORD PTR [rip+0x40e70] # 56f68 <_DYNAMIC+0x230> 0 : 160f8: mov r15,QWORD PTR [rbp-0x68] 0 : 160fc: mov rsi,QWORD PTR [rbp-0xb8] 0 : 16103: test rsi,rsi 0 : 16106: je 16176 0 : 16108: jmp 161b1 0 : 1610d: call QWORD PTR [rip+0x40eed] # 57000 <_DYNAMIC+0x2c8> 0 : 16113: mov r14,rax 0 : 16116: lea rdi,[rbp-0x40] 0 : 1611a: call 14a70 > : 1418 std::io::stdin().lock().read_to_end(&mut input).unwrap(); 0 : 1611f: mov rdi,QWORD PTR [rbp-0x60] 0 : 16123: mov esi,DWORD PTR [rbp-0x58] 0 : 16126: call 14b20 > 0 : 1612b: jmp 161f1 : 1423 fn main() { 0 : 16130: call QWORD PTR [rip+0x40eca] # 57000 <_DYNAMIC+0x2c8> 0 : 16136: call QWORD PTR [rip+0x40ec4] # 57000 <_DYNAMIC+0x2c8> 0 : 1613c: mov r14,rax 0 : 1613f: mov edx,0x10 0 : 16144: mov rdi,QWORD PTR [rbp-0x90] 0 : 1614b: mov rsi,QWORD PTR [rbp-0x70] 0 : 1614f: call QWORD PTR [rip+0x40e13] # 56f68 <_DYNAMIC+0x230> 0 : 16155: jmp 1615e 0 : 16157: mov r14,rax 0 : 1615a: mov r15,QWORD PTR [rbp-0x68] 0 : 1615e: mov rsi,QWORD PTR [rbp-0xe8] 0 : 16165: test rsi,rsi 0 : 16168: jne 1617d 0 : 1616a: mov rsi,QWORD PTR [rbp-0xb8] 0 : 16171: test rsi,rsi 0 : 16174: jne 161b1 0 : 16176: test r15,r15 0 : 16179: jne 161d7 0 : 1617b: jmp 161f1 0 : 1617d: shl rsi,0x3 0 : 16181: mov edx,0x8 0 : 16186: mov rdi,QWORD PTR [rbp-0x78] 0 : 1618a: call QWORD PTR [rip+0x40dd8] # 56f68 <_DYNAMIC+0x230> 0 : 16190: mov rsi,QWORD PTR [rbp-0xb8] 0 : 16197: test rsi,rsi 0 : 1619a: je 16176 0 : 1619c: jmp 161b1 0 : 1619e: mov r14,rax 0 : 161a1: mov r15,QWORD PTR [rbp-0x68] 0 : 161a5: mov rsi,QWORD PTR [rbp-0xb8] 0 : 161ac: test rsi,rsi 0 : 161af: je 16176 0 : 161b1: shl rsi,0x3 0 : 161b5: mov edx,0x8 0 : 161ba: mov rdi,QWORD PTR [rbp-0x48] 0 : 161be: call QWORD PTR [rip+0x40da4] # 56f68 <_DYNAMIC+0x230> 0 : 161c4: test r15,r15 0 : 161c7: jne 161d7 0 : 161c9: jmp 161f1 0 : 161cb: mov r14,rax 0 : 161ce: mov r15,QWORD PTR [rbp-0x68] 0 : 161d2: test r15,r15 0 : 161d5: je 161f1 0 : 161d7: shl r15,0x3 0 : 161db: mov edx,0x8 0 : 161e0: mov rdi,rbx 0 : 161e3: mov rsi,r15 0 : 161e6: call QWORD PTR [rip+0x40d7c] # 56f68 <_DYNAMIC+0x230> 0 : 161ec: jmp 161f1 0 : 161ee: mov r14,rax 0 : 161f1: mov rsi,QWORD PTR [rbp-0xd0] 0 : 161f8: test rsi,rsi 0 : 161fb: je 1620f 0 : 161fd: mov rdi,QWORD PTR [rbp-0xc8] 0 : 16204: mov edx,0x1 0 : 16209: call QWORD PTR [rip+0x40d59] # 56f68 <_DYNAMIC+0x230> 0 : 1620f: mov rdi,r14 0 : 16212: call 53f70 <_Unwind_Resume@plt>