180110e05:	4c 8b c3             	mov    %rbx,%r8
180110e08:	49 8b d5             	mov    %r13,%rdx
180110e0b:	48 8b cf             	mov    %rdi,%rcx
180110e0e:	e8 55 f7 ff ff       	call   0x180110568
180110e13:	85 c0                	test   %eax,%eax
180110e15:	74 76                	je     0x180110e8d
180110e17:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
180110e1c:	41 bf 01 00 00 00    	mov    $0x1,%r15d
180110e22:	48 ff c8             	dec    %rax
180110e25:	4c 3b f8             	cmp    %rax,%r15
180110e28:	77 6b                	ja     0x180110e95
180110e2a:	48 8d 04 dd 00 00 00 	lea    0x0(,%rbx,8),%rax
180110e31:	00
180110e32:	4c 89 74 24 28       	mov    %r14,0x28(%rsp)
180110e37:	49 03 c5             	add    %r13,%rax
180110e3a:	4c 8d 4c 24 70       	lea    0x70(%rsp),%r9
180110e3f:	4c 8b c7             	mov    %rdi,%r8
180110e42:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180110e47:	48 8b d7             	mov    %rdi,%rdx
180110e4a:	48 8b cf             	mov    %rdi,%rcx
180110e4d:	e8 66 24 00 00       	call   0x1801132b8
180110e52:	85 c0                	test   %eax,%eax
180110e54:	74 48                	je     0x180110e9e
180110e56:	4c 8b c3             	mov    %rbx,%r8
180110e59:	49 8b d5             	mov    %r13,%rdx
180110e5c:	48 8b cf             	mov    %rdi,%rcx
180110e5f:	e8 04 f7 ff ff       	call   0x180110568
180110e64:	85 c0                	test   %eax,%eax
180110e66:	74 20                	je     0x180110e88
180110e68:	48 8b 55 cf          	mov    -0x31(%rbp),%rdx
180110e6c:	4c 8b c3             	mov    %rbx,%r8
180110e6f:	48 8b cf             	mov    %rdi,%rcx
180110e72:	e8 f1 f6 ff ff       	call   0x180110568
180110e77:	85 c0                	test   %eax,%eax
180110e79:	74 1a                	je     0x180110e95
180110e7b:	48 8b 44 24 30       	mov    0x30(%rsp),%rax
180110e80:	49 ff c7             	inc    %r15
180110e83:	48 ff c8             	dec    %rax
180110e86:	eb 9d                	jmp    0x180110e25
180110e88:	4c 8b 7c 24 38       	mov    0x38(%rsp),%r15
180110e8d:	49 ff c4             	inc    %r12
180110e90:	e9 b4 fe ff ff       	jmp    0x180110d49
180110e95:	33 f6                	xor    %esi,%esi
180110e97:	eb 05                	jmp    0x180110e9e
180110e99:	be 01 00 00 00       	mov    $0x1,%esi
180110e9e:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
180110ea3:	e8 00 2a 00 00       	call   0x1801138a8
180110ea8:	8b c6                	mov    %esi,%eax
180110eaa:	48 8b 4d ff          	mov    -0x1(%rbp),%rcx
180110eae:	48 33 cc             	xor    %rsp,%rcx
180110eb1:	e8 76 4c f0 ff       	call   0x180015b2c
180110eb6:	48 8b 9c 24 50 01 00 	mov    0x150(%rsp),%rbx
180110ebd:	00
180110ebe:	48 81 c4 00 01 00 00 	add    $0x100,%rsp
180110ec5:	41 5f                	pop    %r15
180110ec7:	41 5e                	pop    %r14
180110ec9:	41 5d                	pop    %r13
180110ecb:	41 5c                	pop    %r12
180110ecd:	5f                   	pop    %rdi
180110ece:	5e                   	pop    %rsi
180110ecf:	5d                   	pop    %rbp
180110ed0:	c3                   	ret
180110ed1:	cc                   	int3
180110ed2:	cc                   	int3
180110ed3:	cc                   	int3
180110ed4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180110ed9:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180110ede:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180110ee3:	57                   	push   %rdi
180110ee4:	48 83 ec 20          	sub    $0x20,%rsp
180110ee8:	33 db                	xor    %ebx,%ebx
180110eea:	49 8b e8             	mov    %r8,%rbp
180110eed:	48 8b f2             	mov    %rdx,%rsi
180110ef0:	48 8b f9             	mov    %rcx,%rdi
180110ef3:	39 5c 24 58          	cmp    %ebx,0x58(%rsp)
180110ef7:	74 11                	je     0x180110f0a
180110ef9:	4c 8b c2             	mov    %rdx,%r8
180110efc:	49 8b d1             	mov    %r9,%rdx
180110eff:	49 c1 e0 03          	shl    $0x3,%r8
180110f03:	e8 b8 4a 02 00       	call   0x1801359c0
180110f08:	eb 2d                	jmp    0x180110f37
180110f0a:	4c 8b 4c 24 68       	mov    0x68(%rsp),%r9
180110f0f:	48 8b d5             	mov    %rbp,%rdx
180110f12:	4c 8b 44 24 60       	mov    0x60(%rsp),%r8
180110f17:	48 8b cf             	mov    %rdi,%rcx
180110f1a:	e8 39 fc ff ff       	call   0x180110b58
180110f1f:	85 c0                	test   %eax,%eax
180110f21:	74 19                	je     0x180110f3c
180110f23:	48 83 0f 01          	orq    $0x1,(%rdi)
180110f27:	48 8b d6             	mov    %rsi,%rdx
180110f2a:	48 8b cf             	mov    %rdi,%rcx
180110f2d:	e8 0e 04 00 00       	call   0x180111340
180110f32:	48 3b c5             	cmp    %rbp,%rax
180110f35:	75 d3                	jne    0x180110f0a
180110f37:	bb 01 00 00 00       	mov    $0x1,%ebx
180110f3c:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180110f41:	8b c3                	mov    %ebx,%eax
180110f43:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180110f48:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
180110f4d:	48 83 c4 20          	add    $0x20,%rsp
180110f51:	5f                   	pop    %rdi
180110f52:	c3                   	ret
180110f53:	cc                   	int3
180110f54:	48 8b c4             	mov    %rsp,%rax
180110f57:	48 89 58 08          	mov    %rbx,0x8(%rax)
180110f5b:	48 89 68 10          	mov    %rbp,0x10(%rax)
180110f5f:	48 89 70 18          	mov    %rsi,0x18(%rax)
180110f63:	57                   	push   %rdi
180110f64:	41 54                	push   %r12
180110f66:	41 55                	push   %r13
180110f68:	41 56                	push   %r14
180110f6a:	41 57                	push   %r15
180110f6c:	48 83 ec 60          	sub    $0x60,%rsp
180110f70:	4d 8b f0             	mov    %r8,%r14
180110f73:	48 8b e9             	mov    %rcx,%rbp
180110f76:	4d 8b c1             	mov    %r9,%r8
180110f79:	33 db                	xor    %ebx,%ebx
180110f7b:	49 c1 e0 03          	shl    $0x3,%r8
180110f7f:	49 8b ce             	mov    %r14,%rcx
180110f82:	49 8b f1             	mov    %r9,%rsi
180110f85:	89 58 20             	mov    %ebx,0x20(%rax)
180110f88:	e8 33 4a 02 00       	call   0x1801359c0
180110f8d:	4c 8b bc 24 f0 00 00 	mov    0xf0(%rsp),%r15
180110f94:	00
180110f95:	4c 8b a4 24 e8 00 00 	mov    0xe8(%rsp),%r12
180110f9c:	00
180110f9d:	4c 8b ac 24 e0 00 00 	mov    0xe0(%rsp),%r13
180110fa4:	00
180110fa5:	48 8b bc 24 d8 00 00 	mov    0xd8(%rsp),%rdi
180110fac:	00
180110fad:	48 85 ff             	test   %rdi,%rdi
180110fb0:	74 03                	je     0x180110fb5
180110fb2:	48 ff 07             	incq   (%rdi)
180110fb5:	4c 8b 8c 24 d0 00 00 	mov    0xd0(%rsp),%r9
180110fbc:	00
180110fbd:	48 8d 84 24 a8 00 00 	lea    0xa8(%rsp),%rax
180110fc4:	00
180110fc5:	4c 89 7c 24 58       	mov    %r15,0x58(%rsp)
180110fca:	4c 8b c6             	mov    %rsi,%r8
180110fcd:	4c 89 64 24 50       	mov    %r12,0x50(%rsp)
180110fd2:	49 8b d6             	mov    %r14,%rdx
180110fd5:	4c 89 6c 24 48       	mov    %r13,0x48(%rsp)
180110fda:	48 8b cd             	mov    %rbp,%rcx
180110fdd:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
180110fe2:	8b 84 24 c8 00 00 00 	mov    0xc8(%rsp),%eax
180110fe9:	89 44 24 38          	mov    %eax,0x38(%rsp)
180110fed:	48 8b 84 24 c0 00 00 	mov    0xc0(%rsp),%rax
180110ff4:	00
180110ff5:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
180110ffa:	48 8d 84 24 b8 00 00 	lea    0xb8(%rsp),%rax
180111001:	00
180111002:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180111007:	48 8b 84 24 b0 00 00 	mov    0xb0(%rsp),%rax
18011100e:	00
18011100f:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180111014:	e8 43 fa ff ff       	call   0x180110a5c
180111019:	85 c0                	test   %eax,%eax
18011101b:	74 47                	je     0x180111064
18011101d:	39 9c 24 a8 00 00 00 	cmp    %ebx,0xa8(%rsp)
180111024:	75 39                	jne    0x18011105f
180111026:	41 b8 02 00 00 00    	mov    $0x2,%r8d
18011102c:	48 8b d3             	mov    %rbx,%rdx
18011102f:	48 85 f6             	test   %rsi,%rsi
180111032:	0f 84 75 ff ff ff    	je     0x180110fad
180111038:	49 8b 0c d6          	mov    (%r14,%rdx,8),%rcx
18011103c:	49 03 c8             	add    %r8,%rcx
18011103f:	49 89 0c d6          	mov    %rcx,(%r14,%rdx,8)
180111043:	49 3b c8             	cmp    %r8,%rcx
180111046:	0f 83 61 ff ff ff    	jae    0x180110fad
18011104c:	48 ff c2             	inc    %rdx
18011104f:	41 b8 01 00 00 00    	mov    $0x1,%r8d
180111055:	48 3b d6             	cmp    %rsi,%rdx
180111058:	75 de                	jne    0x180111038
18011105a:	e9 4e ff ff ff       	jmp    0x180110fad
18011105f:	bb 01 00 00 00       	mov    $0x1,%ebx
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