180111064:	4c 8d 5c 24 60       	lea    0x60(%rsp),%r11
180111069:	8b c3                	mov    %ebx,%eax
18011106b:	49 8b 5b 30          	mov    0x30(%r11),%rbx
18011106f:	49 8b 6b 38          	mov    0x38(%r11),%rbp
180111073:	49 8b 73 40          	mov    0x40(%r11),%rsi
180111077:	49 8b e3             	mov    %r11,%rsp
18011107a:	41 5f                	pop    %r15
18011107c:	41 5e                	pop    %r14
18011107e:	41 5d                	pop    %r13
180111080:	41 5c                	pop    %r12
180111082:	5f                   	pop    %rdi
180111083:	c3                   	ret
180111084:	cc                   	int3
180111085:	cc                   	int3
180111086:	cc                   	int3
180111087:	cc                   	int3
180111088:	4c 8b dc             	mov    %rsp,%r11
18011108b:	49 89 5b 08          	mov    %rbx,0x8(%r11)
18011108f:	49 89 73 10          	mov    %rsi,0x10(%r11)
180111093:	57                   	push   %rdi
180111094:	48 83 ec 30          	sub    $0x30,%rsp
180111098:	48 8b 44 24 60       	mov    0x60(%rsp),%rax
18011109d:	49 8b f1             	mov    %r9,%rsi
1801110a0:	49 89 43 f0          	mov    %rax,-0x10(%r11)
1801110a4:	49 8b f8             	mov    %r8,%rdi
1801110a7:	4d 89 43 e8          	mov    %r8,-0x18(%r11)
1801110ab:	4c 8b ca             	mov    %rdx,%r9
1801110ae:	4c 8b c1             	mov    %rcx,%r8
1801110b1:	48 8b da             	mov    %rdx,%rbx
1801110b4:	e8 fb 05 00 00       	call   0x1801116b4
1801110b9:	48 8d 14 1b          	lea    (%rbx,%rbx,1),%rdx
1801110bd:	48 8b cf             	mov    %rdi,%rcx
1801110c0:	44 8b d0             	mov    %eax,%r10d
1801110c3:	e8 78 02 00 00       	call   0x180111340
1801110c8:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1801110cd:	48 89 06             	mov    %rax,(%rsi)
1801110d0:	41 8b c2             	mov    %r10d,%eax
1801110d3:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
1801110d8:	48 83 c4 30          	add    $0x30,%rsp
1801110dc:	5f                   	pop    %rdi
1801110dd:	c3                   	ret
1801110de:	cc                   	int3
1801110df:	cc                   	int3
1801110e0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1801110e5:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1801110ea:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
1801110ef:	45 33 c9             	xor    %r9d,%r9d
1801110f2:	4c 8b d2             	mov    %rdx,%r10
1801110f5:	48 8b d9             	mov    %rcx,%rbx
1801110f8:	45 8b d9             	mov    %r9d,%r11d
1801110fb:	48 85 d2             	test   %rdx,%rdx
1801110fe:	74 7a                	je     0x18011117a
180111100:	48 bf 33 33 33 33 33 	movabs $0x3333333333333333,%rdi
180111107:	33 33 33
18011110a:	48 be 0f 0f 0f 0f 0f 	movabs $0xf0f0f0f0f0f0f0f,%rsi
180111111:	0f 0f 0f
180111114:	4e 8b 04 db          	mov    (%rbx,%r11,8),%r8
180111118:	48 b9 55 55 55 55 55 	movabs $0x5555555555555555,%rcx
18011111f:	55 55 55
180111122:	49 8b c0             	mov    %r8,%rax
180111125:	49 ff c3             	inc    %r11
180111128:	48 d1 e8             	shr    $1,%rax
18011112b:	48 23 c1             	and    %rcx,%rax
18011112e:	4c 2b c0             	sub    %rax,%r8
180111131:	49 8b c0             	mov    %r8,%rax
180111134:	4c 23 c7             	and    %rdi,%r8
180111137:	48 c1 e8 02          	shr    $0x2,%rax
18011113b:	48 23 c7             	and    %rdi,%rax
18011113e:	49 03 c0             	add    %r8,%rax
180111141:	48 8b d0             	mov    %rax,%rdx
180111144:	48 23 c6             	and    %rsi,%rax
180111147:	48 c1 ea 04          	shr    $0x4,%rdx
18011114b:	48 23 d6             	and    %rsi,%rdx
18011114e:	48 03 d0             	add    %rax,%rdx
180111151:	48 8b c2             	mov    %rdx,%rax
180111154:	48 c1 e8 08          	shr    $0x8,%rax
180111158:	48 03 d0             	add    %rax,%rdx
18011115b:	48 8b ca             	mov    %rdx,%rcx
18011115e:	48 c1 e9 10          	shr    $0x10,%rcx
180111162:	48 03 d1             	add    %rcx,%rdx
180111165:	48 8b ca             	mov    %rdx,%rcx
180111168:	48 c1 e9 20          	shr    $0x20,%rcx
18011116c:	48 03 ca             	add    %rdx,%rcx
18011116f:	0f b6 c9             	movzbl %cl,%ecx
180111172:	4c 03 c9             	add    %rcx,%r9
180111175:	4d 3b da             	cmp    %r10,%r11
180111178:	75 9a                	jne    0x180111114
18011117a:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
18011117f:	49 8b c1             	mov    %r9,%rax
180111182:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
180111187:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
18011118c:	c3                   	ret
18011118d:	cc                   	int3
18011118e:	cc                   	int3
18011118f:	cc                   	int3
180111190:	48 83 c9 01          	or     $0x1,%rcx
180111194:	b8 40 00 00 00       	mov    $0x40,%eax
180111199:	48 ba 00 00 00 00 00 	movabs $0x800000000000000,%rdx
1801111a0:	00 00 08
1801111a3:	eb 08                	jmp    0x1801111ad
1801111a5:	48 83 e8 05          	sub    $0x5,%rax
1801111a9:	48 c1 e1 05          	shl    $0x5,%rcx
1801111ad:	48 3b ca             	cmp    %rdx,%rcx
1801111b0:	72 f3                	jb     0x1801111a5
1801111b2:	48 c1 e9 3c          	shr    $0x3c,%rcx
1801111b6:	ba 9c 94 24 00       	mov    $0x24949c,%edx
1801111bb:	48 d3 ea             	shr    %cl,%rdx
1801111be:	02 c9                	add    %cl,%cl
1801111c0:	48 d3 ea             	shr    %cl,%rdx
1801111c3:	83 e2 07             	and    $0x7,%edx
1801111c6:	48 2b c2             	sub    %rdx,%rax
1801111c9:	c3                   	ret
1801111ca:	cc                   	int3
1801111cb:	cc                   	int3
1801111cc:	48 8b d1             	mov    %rcx,%rdx
1801111cf:	b8 00 04 00 00       	mov    $0x400,%eax
1801111d4:	48 f7 da             	neg    %rdx
1801111d7:	48 23 d1             	and    %rcx,%rdx
1801111da:	45 33 c0             	xor    %r8d,%r8d
1801111dd:	eb 08                	jmp    0x1801111e7
1801111df:	48 c1 ea 0a          	shr    $0xa,%rdx
1801111e3:	49 83 c0 0a          	add    $0xa,%r8
1801111e7:	48 3b d0             	cmp    %rax,%rdx
1801111ea:	73 f3                	jae    0x1801111df
1801111ec:	48 6b c2 17          	imul   $0x17,%rdx,%rax
1801111f0:	48 c1 e8 08          	shr    $0x8,%rax
1801111f4:	48 6b c8 0b          	imul   $0xb,%rax,%rcx
1801111f8:	48 8d 05 31 c1 04 00 	lea    0x4c131(%rip),%rax        # 0x18015d330
1801111ff:	48 2b d1             	sub    %rcx,%rdx
180111202:	0f b6 04 02          	movzbl (%rdx,%rax,1),%eax
180111206:	49 03 c0             	add    %r8,%rax
180111209:	c3                   	ret
18011120a:	cc                   	int3
18011120b:	cc                   	int3
18011120c:	8b c1                	mov    %ecx,%eax
18011120e:	41 b9 01 00 00 00    	mov    $0x1,%r9d
180111214:	f7 d0                	not    %eax
180111216:	4c 8b d2             	mov    %rdx,%r10
180111219:	41 84 c1             	test   %al,%r9b
18011121c:	74 12                	je     0x180111230
18011121e:	45 33 c9             	xor    %r9d,%r9d
180111221:	4d 85 c0             	test   %r8,%r8
180111224:	74 44                	je     0x18011126a
180111226:	41 c7 40 10 06 00 00 	movl   $0x6,0x10(%r8)
18011122d:	00
18011122e:	eb 3a                	jmp    0x18011126a
180111230:	4c 8d 04 49          	lea    (%rcx,%rcx,2),%r8
180111234:	49 8b d1             	mov    %r9,%rdx
180111237:	49 83 f0 02          	xor    $0x2,%r8
18011123b:	49 8b c0             	mov    %r8,%rax
18011123e:	48 0f af c1          	imul   %rcx,%rax
180111242:	48 2b d0             	sub    %rax,%rdx
180111245:	b8 05 00 00 00       	mov    $0x5,%eax
18011124a:	48 8d 4a 01          	lea    0x1(%rdx),%rcx
18011124e:	48 03 c0             	add    %rax,%rax
180111251:	4c 0f af c1          	imul   %rcx,%r8
180111255:	48 0f af d2          	imul   %rdx,%rdx
180111259:	48 83 f8 20          	cmp    $0x20,%rax
18011125d:	72 eb                	jb     0x18011124a
18011125f:	48 8d 4a 01          	lea    0x1(%rdx),%rcx
180111263:	49 0f af c8          	imul   %r8,%rcx
180111267:	49 89 0a             	mov    %rcx,(%r10)
18011126a:	41 8b c1             	mov    %r9d,%eax
18011126d:	c3                   	ret
18011126e:	cc                   	int3
18011126f:	cc                   	int3
180111270:	48 8b c4             	mov    %rsp,%rax
180111273:	48 89 58 08          	mov    %rbx,0x8(%rax)
180111277:	48 89 70 10          	mov    %rsi,0x10(%rax)
18011127b:	48 89 78 18          	mov    %rdi,0x18(%rax)
18011127f:	4c 89 70 20          	mov    %r14,0x20(%rax)
180111283:	4c 8b 4c 24 28       	mov    0x28(%rsp),%r9
180111288:	4d 8b f0             	mov    %r8,%r14
18011128b:	48 8b fa             	mov    %rdx,%rdi
18011128e:	48 8b f1             	mov    %rcx,%rsi
180111291:	4d 85 c9             	test   %r9,%r9
180111294:	0f 84 8b 00 00 00    	je     0x180111325
18011129a:	4d 8d 41 ff          	lea    -0x1(%r9),%r8
18011129e:	4d 8b d9             	mov    %r9,%r11
1801112a1:	49 8b d8             	mov    %r8,%rbx
1801112a4:	48 8d 47 ff          	lea    -0x1(%rdi),%rax
1801112a8:	49 03 c1             	add    %r9,%rax
1801112ab:	48 c1 eb 06          	shr    $0x6,%rbx
1801112af:	48 8b c8             	mov    %rax,%rcx
1801112b2:	41 83 e0 3f          	and    $0x3f,%r8d
1801112b6:	48 c1 e8 06          	shr    $0x6,%rax
1801112ba:	83 e1 3f             	and    $0x3f,%ecx
1801112bd:	4c 8b 14 c6          	mov    (%rsi,%rax,8),%r10
1801112c1:	49 3b c8             	cmp    %r8,%rcx
1801112c4:	72 13                	jb     0x1801112d9
1801112c6:	49 8d 40 01          	lea    0x1(%r8),%rax
1801112ca:	4c 3b c8             	cmp    %rax,%r9
1801112cd:	4c 0f 47 d8          	cmova  %rax,%r11
1801112d1:	41 2a c8             	sub    %r8b,%cl
1801112d4:	49 d3 ea             	shr    %cl,%r10
1801112d7:	eb 15                	jmp    0x1801112ee
1801112d9:	48 8d 41 01          	lea    0x1(%rcx),%rax
1801112dd:	4c 3b c8             	cmp    %rax,%r9
1801112e0:	4c 0f 47 d8          	cmova  %rax,%r11
1801112e4:	41 8a c0             	mov    %r8b,%al
1801112e7:	2a c1                	sub    %cl,%al
1801112e9:	8a c8                	mov    %al,%cl
1801112eb:	49 d3 e2             	shl    %cl,%r10
1801112ee:	48 83 ca ff          	or     $0xffffffffffffffff,%rdx
1801112f2:	b9 40 00 00 00       	mov    $0x40,%ecx
1801112f7:	41 2a cb             	sub    %r11b,%cl
1801112fa:	48 d3 e2             	shl    %cl,%rdx
1801112fd:	b9 3f 00 00 00       	mov    $0x3f,%ecx
180111302:	41 2a c8             	sub    %r8b,%cl
180111305:	48 d3 ea             	shr    %cl,%rdx
180111308:	48 8b c2             	mov    %rdx,%rax
18011130b:	49 23 d2             	and    %r10,%rdx
18011130e:	48 f7 d0             	not    %rax
180111311:	49 23 04 de          	and    (%r14,%rbx,8),%rax
180111315:	48 0b c2             	or     %rdx,%rax
180111318:	49 89 04 de          	mov    %rax,(%r14,%rbx,8)
18011131c:	4d 2b cb             	sub    %r11,%r9
18011131f:	0f 85 75 ff ff ff    	jne    0x18011129a
180111325:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
18011132a:	b8 01 00 00 00       	mov    $0x1,%eax
18011132f:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
180111334:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
180111339:	4c 8b 74 24 20       	mov    0x20(%rsp),%r14
18011133e:	c3                   	ret
18011133f:	cc                   	int3
180111340:	48 83 ec 28          	sub    $0x28,%rsp
180111344:	4c 8b c2             	mov    %rdx,%r8
180111347:	48 85 d2             	test   %rdx,%rdx
18011134a:	74 34                	je     0x180111380
18011134c:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
180111350:	48 8d 04 d0          	lea    (%rax,%rdx,8),%rax
180111354:	48 83 38 00          	cmpq   $0x0,(%rax)
180111358:	75 0a                	jne    0x180111364
18011135a:	48 83 e8 08          	sub    $0x8,%rax
18011135e:	49 83 e8 01          	sub    $0x1,%r8
180111362:	75 f0                	jne    0x180111354
180111364:	4d 85 c0             	test   %r8,%r8
180111367:	74 17                	je     0x180111380
180111369:	4a 8b 4c c1 f8       	mov    -0x8(%rcx,%r8,8),%rcx
18011136e:	e8 1d fe ff ff       	call   0x180111190
180111373:	48 83 c0 c0          	add    $0xffffffffffffffc0,%rax
180111377:	49 c1 e0 06          	shl    $0x6,%r8
18011137b:	49 03 c0             	add    %r8,%rax
18011137e:	eb 02                	jmp    0x180111382
180111380:	33 c0                	xor    %eax,%eax
180111382:	48 83 c4 28          	add    $0x28,%rsp
180111386:	c3                   	ret
180111387:	cc                   	int3
180111388:	48 83 ec 28          	sub    $0x28,%rsp
18011138c:	45 33 c9             	xor    %r9d,%r9d
18011138f:	48 8b c1             	mov    %rcx,%rax
180111392:	48 85 d2             	test   %rdx,%rdx
180111395:	74 11                	je     0x1801113a8
180111397:	4a 8b 0c c8          	mov    (%rax,%r9,8),%rcx
18011139b:	48 85 c9             	test   %rcx,%rcx
18011139e:	75 1d                	jne    0x1801113bd
1801113a0:	49 ff c1             	inc    %r9
1801113a3:	4c 3b ca             	cmp    %rdx,%r9
1801113a6:	75 ef                	jne    0x180111397
1801113a8:	4d 85 c0             	test   %r8,%r8
1801113ab:	74 08                	je     0x1801113b5
1801113ad:	41 c7 40 10 11 00 00 	movl   $0x11,0x10(%r8)
1801113b4:	00
1801113b5:	33 c0                	xor    %eax,%eax
1801113b7:	48 83 c4 28          	add    $0x28,%rsp
1801113bb:	c3                   	ret
1801113bc:	cc                   	int3
1801113bd:	e8 0a fe ff ff       	call   0x1801111cc
1801113c2:	49 c1 e1 06          	shl    $0x6,%r9
1801113c6:	49 03 c1             	add    %r9,%rax
1801113c9:	eb ec                	jmp    0x1801113b7
1801113cb:	cc                   	int3
1801113cc:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1801113d1:	56                   	push   %rsi
1801113d2:	57                   	push   %rdi
1801113d3:	45 33 d2             	xor    %r10d,%r10d
1801113d6:	49 8b f9             	mov    %r9,%rdi
1801113d9:	49 8b d8             	mov    %r8,%rbx
1801113dc:	48 8b f2             	mov    %rdx,%rsi
1801113df:	4c 8b d9             	mov    %rcx,%r11
1801113e2:	4d 85 c9             	test   %r9,%r9
1801113e5:	74 33                	je     0x18011141a
1801113e7:	4c 2b db             	sub    %rbx,%r11
1801113ea:	4c 8b 0b             	mov    (%rbx),%r9
1801113ed:	49 8b 04 1b          	mov    (%r11,%rbx,1),%rax
1801113f1:	48 f7 e6             	mul    %rsi
1801113f4:	4b 8d 0c 11          	lea    (%r9,%r10,1),%rcx
1801113f8:	4c 8b d2             	mov    %rdx,%r10
1801113fb:	4c 8d 04 08          	lea    (%rax,%rcx,1),%r8
1801113ff:	4c 3b c0             	cmp    %rax,%r8
180111402:	4c 89 03             	mov    %r8,(%rbx)
180111405:	48 8d 5b 08          	lea    0x8(%rbx),%rbx
180111409:	49 83 d2 00          	adc    $0x0,%r10
18011140d:	49 3b c9             	cmp    %r9,%rcx
180111410:	49 83 d2 00          	adc    $0x0,%r10
180111414:	48 83 ef 01          	sub    $0x1,%rdi
180111418:	75 d0                	jne    0x1801113ea
18011141a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18011141f:	49 8b c2             	mov    %r10,%rax
180111422:	5f                   	pop    %rdi
180111423:	5e                   	pop    %rsi
180111424:	c3                   	ret
180111425:	cc                   	int3
180111426:	cc                   	int3
180111427:	cc                   	int3
180111428:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
18011142d:	56                   	push   %rsi
18011142e:	57                   	push   %rdi
18011142f:	45 33 d2             	xor    %r10d,%r10d
180111432:	49 8b f9             	mov    %r9,%rdi
180111435:	49 8b d8             	mov    %r8,%rbx
180111438:	48 8b f2             	mov    %rdx,%rsi
18011143b:	4c 8b d9             	mov    %rcx,%r11
18011143e:	4d 85 c9             	test   %r9,%r9
180111441:	74 3a                	je     0x18011147d
180111443:	4c 2b db             	sub    %rbx,%r11
180111446:	4c 8b 0b             	mov    (%rbx),%r9
180111449:	49 8b 04 1b          	mov    (%r11,%rbx,1),%rax
18011144d:	48 f7 e6             	mul    %rsi
180111450:	4d 3b ca             	cmp    %r10,%r9
180111453:	4d 1b c0             	sbb    %r8,%r8
180111456:	4d 2b ca             	sub    %r10,%r9
180111459:	33 c9                	xor    %ecx,%ecx
18011145b:	4d 8b d0             	mov    %r8,%r10
18011145e:	4c 3b c8             	cmp    %rax,%r9
180111461:	0f 92 c1             	setb   %cl
180111464:	4c 2b c8             	sub    %rax,%r9
180111467:	4c 2b d1             	sub    %rcx,%r10
18011146a:	4c 89 0b             	mov    %r9,(%rbx)
18011146d:	4c 2b d2             	sub    %rdx,%r10
180111470:	48 8d 5b 08          	lea    0x8(%rbx),%rbx
180111474:	49 f7 da             	neg    %r10
180111477:	48 83 ef 01          	sub    $0x1,%rdi
18011147b:	75 c9                	jne    0x180111446
18011147d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180111482:	49 8b c2             	mov    %r10,%rax
180111485:	5f                   	pop    %rdi
180111486:	5e                   	pop    %rsi
180111487:	c3                   	ret
180111488:	cc                   	int3
180111489:	cc                   	int3
18011148a:	cc                   	int3
18011148b:	cc                   	int3
18011148c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180111491:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
180111496:	57                   	push   %rdi
180111497:	48 83 ec 40          	sub    $0x40,%rsp
18011149b:	49 8b f9             	mov    %r9,%rdi
18011149e:	49 8b f0             	mov    %r8,%rsi
1801114a1:	44 8b d2             	mov    %edx,%r10d