180104f5a:	74 38                	je     0x180104f94
180104f5c:	48 83 64 24 30 00    	andq   $0x0,0x30(%rsp)
180104f62:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
180104f67:	e8 30 29 00 00       	call   0x18010789c
180104f6c:	8b d8                	mov    %eax,%ebx
180104f6e:	85 c0                	test   %eax,%eax
180104f70:	78 1d                	js     0x180104f8f
180104f72:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
180104f77:	48 8d 15 0e 0b 09 00 	lea    0x90b0e(%rip),%rdx        # 0x180195a8c
180104f7e:	e8 c1 27 00 00       	call   0x180107744
180104f83:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
180104f88:	8b d8                	mov    %eax,%ebx
180104f8a:	e8 b1 2b 00 00       	call   0x180107b40
180104f8f:	e8 4c 05 00 00       	call   0x1801054e0
180104f94:	8b c3                	mov    %ebx,%eax
180104f96:	48 83 c4 20          	add    $0x20,%rsp
180104f9a:	5b                   	pop    %rbx
180104f9b:	c3                   	ret
180104f9c:	cc                   	int3
180104f9d:	cc                   	int3
180104f9e:	cc                   	int3
180104f9f:	cc                   	int3
180104fa0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180104fa5:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180104faa:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
180104faf:	55                   	push   %rbp
180104fb0:	41 56                	push   %r14
180104fb2:	41 57                	push   %r15
180104fb4:	48 8b ec             	mov    %rsp,%rbp
180104fb7:	48 83 ec 40          	sub    $0x40,%rsp
180104fbb:	f6 05 6e 0a 09 00 01 	testb  $0x1,0x90a6e(%rip)        # 0x180195a30
180104fc2:	44 8b f9             	mov    %ecx,%r15d
180104fc5:	75 0a                	jne    0x180104fd1
180104fc7:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
180104fcc:	e9 3b 01 00 00       	jmp    0x18010510c
180104fd1:	44 8b 05 f8 09 09 00 	mov    0x909f8(%rip),%r8d        # 0x1801959d0
180104fd8:	41 ba 04 00 00 00    	mov    $0x4,%r10d
180104fde:	8b 35 e4 09 09 00    	mov    0x909e4(%rip),%esi        # 0x1801959c8
180104fe4:	44 8b 35 d9 09 09 00 	mov    0x909d9(%rip),%r14d        # 0x1801959c4
180104feb:	8b 15 db 09 09 00    	mov    0x909db(%rip),%edx        # 0x1801959cc
180104ff1:	89 75 f0             	mov    %esi,-0x10(%rbp)
180104ff4:	44 89 75 f4          	mov    %r14d,-0xc(%rbp)
180104ff8:	45 3b c2             	cmp    %r10d,%r8d
180104ffb:	75 06                	jne    0x180105003
180104ffd:	41 8d 4a ff          	lea    -0x1(%r10),%ecx
180105001:	eb 0a                	jmp    0x18010500d
180105003:	33 c9                	xor    %ecx,%ecx
180105005:	41 83 f8 05          	cmp    $0x5,%r8d
180105009:	41 0f 44 ca          	cmove  %r10d,%ecx
18010500d:	f2 0f 10 45 f0       	movsd  -0x10(%rbp),%xmm0
180105012:	8b c1                	mov    %ecx,%eax
180105014:	0f af c6             	imul   %esi,%eax
180105017:	41 b9 b8 1f 00 00    	mov    $0x1fb8,%r9d
18010501d:	f2 0f 11 45 e0       	movsd  %xmm0,-0x20(%rbp)
180105022:	8b 5d e4             	mov    -0x1c(%rbp),%ebx
180105025:	8b 7d e0             	mov    -0x20(%rbp),%edi
180105028:	89 55 e8             	mov    %edx,-0x18(%rbp)
18010502b:	41 0f af c6          	imul   %r14d,%eax
18010502f:	41 3b c1             	cmp    %r9d,%eax
180105032:	44 0f 42 c8          	cmovb  %eax,%r9d
180105036:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
18010503a:	48 c1 e8 20          	shr    $0x20,%rax
18010503e:	0f af c1             	imul   %ecx,%eax
180105041:	0f af c6             	imul   %esi,%eax
180105044:	41 3b c1             	cmp    %r9d,%eax
180105047:	76 1c                	jbe    0x180105065
180105049:	d1 ef                	shr    $1,%edi
18010504b:	d1 eb                	shr    $1,%ebx
18010504d:	8b c7                	mov    %edi,%eax
18010504f:	0f af c3             	imul   %ebx,%eax
180105052:	d1 ea                	shr    $1,%edx
180105054:	0f af c1             	imul   %ecx,%eax
180105057:	41 3b c1             	cmp    %r9d,%eax
18010505a:	77 ed                	ja     0x180105049
18010505c:	89 5d e4             	mov    %ebx,-0x1c(%rbp)
18010505f:	89 7d e0             	mov    %edi,-0x20(%rbp)
180105062:	89 55 e8             	mov    %edx,-0x18(%rbp)
180105065:	45 3b c2             	cmp    %r10d,%r8d
180105068:	75 07                	jne    0x180105071
18010506a:	ba 18 00 00 00       	mov    $0x18,%edx
18010506f:	eb 0f                	jmp    0x180105080
180105071:	ba 01 00 00 00       	mov    $0x1,%edx
180105076:	41 83 f8 05          	cmp    $0x5,%r8d
18010507a:	8d 42 1f             	lea    0x1f(%rdx),%eax
18010507d:	0f 44 d0             	cmove  %eax,%edx
180105080:	41 b9 00 20 00 00    	mov    $0x2000,%r9d
180105086:	4c 8d 05 b3 d2 08 00 	lea    0x8d2b3(%rip),%r8        # 0x180192340
18010508d:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
180105091:	e8 52 2a 00 00       	call   0x180107ae8
180105096:	85 c0                	test   %eax,%eax
180105098:	78 72                	js     0x18010510c
18010509a:	41 8b d7             	mov    %r15d,%edx
18010509d:	48 8d 0d 9c d2 08 00 	lea    0x8d29c(%rip),%rcx        # 0x180192340
1801050a4:	e8 53 27 00 00       	call   0x1801077fc
1801050a9:	33 c9                	xor    %ecx,%ecx
1801050ab:	89 4d 2c             	mov    %ecx,0x2c(%rbp)
1801050ae:	45 85 f6             	test   %r14d,%r14d
1801050b1:	74 4f                	je     0x180105102
1801050b3:	83 65 28 00          	andl   $0x0,0x28(%rbp)
1801050b7:	85 f6                	test   %esi,%esi
1801050b9:	74 3d                	je     0x1801050f8
1801050bb:	48 8d 55 28          	lea    0x28(%rbp),%rdx
1801050bf:	48 8d 0d 7a d2 08 00 	lea    0x8d27a(%rip),%rcx        # 0x180192340
1801050c6:	e8 79 26 00 00       	call   0x180107744
1801050cb:	8b 05 7f d2 08 00    	mov    0x8d27f(%rip),%eax        # 0x180192350
1801050d1:	c1 e8 04             	shr    $0x4,%eax
1801050d4:	f6 d0                	not    %al
1801050d6:	a8 01                	test   $0x1,%al
1801050d8:	75 0f                	jne    0x1801050e9
1801050da:	41 8b d7             	mov    %r15d,%edx
1801050dd:	48 8d 0d 5c d2 08 00 	lea    0x8d25c(%rip),%rcx        # 0x180192340
1801050e4:	e8 13 27 00 00       	call   0x1801077fc
1801050e9:	8b 45 28             	mov    0x28(%rbp),%eax
1801050ec:	03 c7                	add    %edi,%eax
1801050ee:	89 45 28             	mov    %eax,0x28(%rbp)
1801050f1:	3b c6                	cmp    %esi,%eax
1801050f3:	72 c6                	jb     0x1801050bb
1801050f5:	8b 4d 2c             	mov    0x2c(%rbp),%ecx
1801050f8:	03 cb                	add    %ebx,%ecx
1801050fa:	89 4d 2c             	mov    %ecx,0x2c(%rbp)
1801050fd:	41 3b ce             	cmp    %r14d,%ecx
180105100:	72 b1                	jb     0x1801050b3
180105102:	0f ba 2d 26 09 09 00 	btsl   $0xd,0x90926(%rip)        # 0x180195a30
180105109:	0d
18010510a:	33 c0                	xor    %eax,%eax
18010510c:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
180105111:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
180105116:	48 8b 7c 24 78       	mov    0x78(%rsp),%rdi
18010511b:	48 83 c4 40          	add    $0x40,%rsp
18010511f:	41 5f                	pop    %r15
180105121:	41 5e                	pop    %r14
180105123:	5d                   	pop    %rbp
180105124:	c3                   	ret
180105125:	cc                   	int3
180105126:	cc                   	int3
180105127:	cc                   	int3
180105128:	48 83 ec 68          	sub    $0x68,%rsp
18010512c:	f6 05 fd 08 09 00 01 	testb  $0x1,0x908fd(%rip)        # 0x180195a30
180105133:	75 07                	jne    0x18010513c
180105135:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
18010513a:	eb 64                	jmp    0x1801051a0
18010513c:	48 8b 84 24 c8 00 00 	mov    0xc8(%rsp),%rax
180105143:	00
180105144:	48 89 44 24 58       	mov    %rax,0x58(%rsp)
180105149:	48 8b 84 24 c0 00 00 	mov    0xc0(%rsp),%rax
180105150:	00
180105151:	48 89 44 24 50       	mov    %rax,0x50(%rsp)
180105156:	48 8b 84 24 b8 00 00 	mov    0xb8(%rsp),%rax
18010515d:	00
18010515e:	48 89 44 24 48       	mov    %rax,0x48(%rsp)
180105163:	48 8b 84 24 b0 00 00 	mov    0xb0(%rsp),%rax
18010516a:	00
18010516b:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
180105170:	8b 84 24 a8 00 00 00 	mov    0xa8(%rsp),%eax
180105177:	89 44 24 38          	mov    %eax,0x38(%rsp)
18010517b:	48 83 64 24 30 00    	andq   $0x0,0x30(%rsp)
180105181:	48 8b 84 24 98 00 00 	mov    0x98(%rsp),%rax
180105188:	00
180105189:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18010518e:	48 8b 84 24 90 00 00 	mov    0x90(%rsp),%rax
180105195:	00
180105196:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18010519b:	e8 08 00 00 00       	call   0x1801051a8
1801051a0:	48 83 c4 68          	add    $0x68,%rsp
1801051a4:	c3                   	ret
1801051a5:	cc                   	int3
1801051a6:	cc                   	int3
1801051a7:	cc                   	int3
1801051a8:	48 8b c4             	mov    %rsp,%rax
1801051ab:	48 89 58 18          	mov    %rbx,0x18(%rax)
1801051af:	4c 89 48 20          	mov    %r9,0x20(%rax)
1801051b3:	48 89 50 10          	mov    %rdx,0x10(%rax)
1801051b7:	48 89 48 08          	mov    %rcx,0x8(%rax)
1801051bb:	55                   	push   %rbp
1801051bc:	56                   	push   %rsi
1801051bd:	57                   	push   %rdi
1801051be:	41 54                	push   %r12
1801051c0:	41 55                	push   %r13
1801051c2:	41 56                	push   %r14
1801051c4:	41 57                	push   %r15
1801051c6:	48 8d 68 c1          	lea    -0x3f(%rax),%rbp
1801051ca:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
1801051d1:	33 db                	xor    %ebx,%ebx
1801051d3:	4d 8b f1             	mov    %r9,%r14
1801051d6:	49 8b f0             	mov    %r8,%rsi
1801051d9:	4c 8b c2             	mov    %rdx,%r8
1801051dc:	4c 8b c9             	mov    %rcx,%r9
1801051df:	44 8b fb             	mov    %ebx,%r15d
1801051e2:	44 8b e3             	mov    %ebx,%r12d
1801051e5:	8b fb                	mov    %ebx,%edi
1801051e7:	48 89 5d bf          	mov    %rbx,-0x41(%rbp)
1801051eb:	48 39 9d 9f 00 00 00 	cmp    %rbx,0x9f(%rbp)
1801051f2:	74 13                	je     0x180105207
1801051f4:	48 39 9d 87 00 00 00 	cmp    %rbx,0x87(%rbp)
1801051fb:	75 0a                	jne    0x180105207
1801051fd:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
180105202:	e9 bb 02 00 00       	jmp    0x1801054c2
180105207:	f6 45 7f 02          	testb  $0x2,0x7f(%rbp)
18010520b:	74 09                	je     0x180105216
18010520d:	48 39 9d 97 00 00 00 	cmp    %rbx,0x97(%rbp)
180105214:	74 e7                	je     0x1801051fd
180105216:	4c 8b ad 8f 00 00 00 	mov    0x8f(%rbp),%r13
18010521d:	4d 85 ed             	test   %r13,%r13
180105220:	0f 84 b4 00 00 00    	je     0x1801052da
180105226:	49 8b 4d 00          	mov    0x0(%r13),%rcx
18010522a:	48 85 c9             	test   %rcx,%rcx
18010522d:	0f 84 a7 00 00 00    	je     0x1801052da
180105233:	f6 45 7f 01          	testb  $0x1,0x7f(%rbp)
180105237:	74 0a                	je     0x180105243
180105239:	e8 76 43 00 00       	call   0x1801095b4
18010523e:	e9 46 02 00 00       	jmp    0x180105489
180105243:	48 8b 45 6f          	mov    0x6f(%rbp),%rax
180105247:	48 85 c0             	test   %rax,%rax
18010524a:	74 32                	je     0x18010527e
18010524c:	48 8b 55 67          	mov    0x67(%rbp),%rdx
180105250:	48 85 d2             	test   %rdx,%rdx
180105253:	74 29                	je     0x18010527e
180105255:	8b 00                	mov    (%rax),%eax
180105257:	4c 8d 45 c7          	lea    -0x39(%rbp),%r8
18010525b:	89 45 c7             	mov    %eax,-0x39(%rbp)
18010525e:	8b 02                	mov    (%rdx),%eax
180105260:	33 d2                	xor    %edx,%edx
180105262:	89 45 cb             	mov    %eax,-0x35(%rbp)
180105265:	e8 a2 40 00 00       	call   0x18010930c
18010526a:	8b d8                	mov    %eax,%ebx
18010526c:	85 c0                	test   %eax,%eax
18010526e:	0f 88 4e 02 00 00    	js     0x1801054c2
180105274:	4c 8b 45 4f          	mov    0x4f(%rbp),%r8
180105278:	33 db                	xor    %ebx,%ebx
18010527a:	4c 8b 4d 47          	mov    0x47(%rbp),%r9
18010527e:	4d 85 c0             	test   %r8,%r8
180105281:	74 1d                	je     0x1801052a0
180105283:	49 8b 4d 00          	mov    0x0(%r13),%rcx
180105287:	48 85 c9             	test   %rcx,%rcx
18010528a:	0f 84 6d ff ff ff    	je     0x1801051fd
180105290:	f6 41 40 01          	testb  $0x1,0x40(%rcx)
180105294:	0f 84 63 ff ff ff    	je     0x1801051fd
18010529a:	49 8b 00             	mov    (%r8),%rax
18010529d:	48 89 01             	mov    %rax,(%rcx)
1801052a0:	66 41 39 19          	cmp    %bx,(%r9)
1801052a4:	75 07                	jne    0x1801052ad
1801052a6:	c7 45 a7 20 00 00 00 	movl   $0x20,-0x59(%rbp)
1801052ad:	48 8b 85 97 00 00 00 	mov    0x97(%rbp),%rax
1801052b4:	48 8d 55 a7          	lea    -0x59(%rbp),%rdx
1801052b8:	44 8b 45 7f          	mov    0x7f(%rbp),%r8d
1801052bc:	49 0f 45 d1          	cmovne %r9,%rdx
1801052c0:	4c 8b 8d 87 00 00 00 	mov    0x87(%rbp),%r9
1801052c7:	49 8b 4d 00          	mov    0x0(%r13),%rcx
1801052cb:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
1801052d0:	e8 2b 43 00 00       	call   0x180109600
1801052d5:	e9 a9 01 00 00       	jmp    0x180105483
1801052da:	48 85 d2             	test   %rdx,%rdx
1801052dd:	0f 84 1a ff ff ff    	je     0x1801051fd
1801052e3:	4d 85 c9             	test   %r9,%r9
1801052e6:	75 11                	jne    0x1801052f9
1801052e8:	48 85 f6             	test   %rsi,%rsi
1801052eb:	0f 84 0c ff ff ff    	je     0x1801051fd
1801052f1:	39 1e                	cmp    %ebx,(%rsi)
1801052f3:	0f 84 04 ff ff ff    	je     0x1801051fd
1801052f9:	4d 85 f6             	test   %r14,%r14
1801052fc:	74 07                	je     0x180105305
1801052fe:	41 8b 0e             	mov    (%r14),%ecx
180105301:	85 c9                	test   %ecx,%ecx
180105303:	75 22                	jne    0x180105327
180105305:	8b 0d bd 06 09 00    	mov    0x906bd(%rip),%ecx        # 0x1801959c8
18010530b:	b8 d3 4d 62 10       	mov    $0x10624dd3,%eax
180105310:	39 0d ae 06 09 00    	cmp    %ecx,0x906ae(%rip)        # 0x1801959c4
180105316:	0f 46 0d a7 06 09 00 	cmovbe 0x906a7(%rip),%ecx        # 0x1801959c4
18010531d:	6b c9 2b             	imul   $0x2b,%ecx,%ecx
180105320:	f7 e1                	mul    %ecx
180105322:	8b ca                	mov    %edx,%ecx
180105324:	c1 e9 06             	shr    $0x6,%ecx
180105327:	48 8b 55 77          	mov    0x77(%rbp),%rdx
18010532b:	48 8d 45 cf          	lea    -0x31(%rbp),%rax
18010532f:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
180105334:	4c 8d 4d df          	lea    -0x21(%rbp),%r9
180105338:	48 8d 45 d7          	lea    -0x29(%rbp),%rax
18010533c:	45 33 c0             	xor    %r8d,%r8d
18010533f:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
180105344:	e8 07 30 00 00       	call   0x180108350
180105349:	8b d8                	mov    %eax,%ebx
18010534b:	85 c0                	test   %eax,%eax
18010534d:	0f 88 6f 01 00 00    	js     0x1801054c2
180105353:	48 8b 45 6f          	mov    0x6f(%rbp),%rax
180105357:	89 7d db             	mov    %edi,-0x25(%rbp)
18010535a:	48 85 c0             	test   %rax,%rax
18010535d:	75 05                	jne    0x180105364
18010535f:	89 7d c7             	mov    %edi,-0x39(%rbp)
180105362:	eb 05                	jmp    0x180105369
180105364:	8b 00                	mov    (%rax),%eax
180105366:	89 45 c7             	mov    %eax,-0x39(%rbp)
180105369:	48 8b 45 67          	mov    0x67(%rbp),%rax
18010536d:	48 85 c0             	test   %rax,%rax
180105370:	75 06                	jne    0x180105378
180105372:	83 4d cb ff          	orl    $0xffffffff,-0x35(%rbp)
180105376:	eb 05                	jmp    0x18010537d
180105378:	8b 00                	mov    (%rax),%eax
18010537a:	89 45 cb             	mov    %eax,-0x35(%rbp)
18010537d:	4d 85 f6             	test   %r14,%r14
180105380:	74 07                	je     0x180105389
180105382:	41 8b 06             	mov    (%r14),%eax
180105385:	85 c0                	test   %eax,%eax
180105387:	75 03                	jne    0x18010538c
180105389:	8b 45 e3             	mov    -0x1d(%rbp),%eax
18010538c:	89 45 b3             	mov    %eax,-0x4d(%rbp)
18010538f:	48 85 f6             	test   %rsi,%rsi
180105392:	74 0b                	je     0x18010539f
180105394:	8b 06                	mov    (%rsi),%eax
180105396:	85 c0                	test   %eax,%eax
180105398:	74 05                	je     0x18010539f
18010539a:	89 45 af             	mov    %eax,-0x51(%rbp)
18010539d:	eb 7c                	jmp    0x18010541b
18010539f:	48 8b 55 47          	mov    0x47(%rbp),%rdx
1801053a3:	48 8d 4d df          	lea    -0x21(%rbp),%rcx
1801053a7:	e8 18 83 f7 ff       	call   0x18007d6c4
1801053ac:	44 0f b7 7d df       	movzwl -0x21(%rbp),%r15d
1801053b1:	33 c0                	xor    %eax,%eax
1801053b3:	66 41 d1 ef          	shr    $1,%r15w
1801053b7:	8b df                	mov    %edi,%ebx
1801053b9:	66 41 3b c7          	cmp    %r15w,%ax
1801053bd:	73 4e                	jae    0x18010540d
1801053bf:	4c 8b 6d e7          	mov    -0x19(%rbp),%r13
1801053c3:	33 c9                	xor    %ecx,%ecx
1801053c5:	0f b7 c7             	movzwl %di,%eax
1801053c8:	48 89 4d ff          	mov    %rcx,-0x1(%rbp)
1801053cc:	4c 8d 45 df          	lea    -0x21(%rbp),%r8
1801053d0:	48 8d 4d ef          	lea    -0x11(%rbp),%rcx
1801053d4:	0f 57 c0             	xorps  %xmm0,%xmm0
1801053d7:	48 89 4c 24 28       	mov    %rcx,0x28(%rsp)
1801053dc:	48 8d 55 c7          	lea    -0x39(%rbp),%rdx
1801053e0:	41 0f b7 4c 45 00    	movzwl 0x0(%r13,%rax,2),%ecx
1801053e6:	0f 11 45 ef          	movups %xmm0,-0x11(%rbp)
1801053ea:	e8 81 70 00 00       	call   0x18010c470
1801053ef:	8b d8                	mov    %eax,%ebx
1801053f1:	85 c0                	test   %eax,%eax
1801053f3:	78 0d                	js     0x180105402
1801053f5:	44 03 65 df          	add    -0x21(%rbp),%r12d
1801053f9:	66 ff c7             	inc    %di
1801053fc:	66 41 3b ff          	cmp    %r15w,%di
180105400:	72 c1                	jb     0x1801053c3
180105402:	4c 8b 75 5f          	mov    0x5f(%rbp),%r14
180105406:	4c 8b ad 8f 00 00 00 	mov    0x8f(%rbp),%r13
18010540d:	33 ff                	xor    %edi,%edi
18010540f:	85 db                	test   %ebx,%ebx
180105411:	0f 88 ab 00 00 00    	js     0x1801054c2
180105417:	44 89 65 af          	mov    %r12d,-0x51(%rbp)
18010541b:	48 8b 85 9f 00 00 00 	mov    0x9f(%rbp),%rax
180105422:	48 85 c0             	test   %rax,%rax
180105425:	74 04                	je     0x18010542b
180105427:	8b 00                	mov    (%rax),%eax