180045040:	75 e1                	jne    0x180045023
180045042:	ff c6                	inc    %esi
180045044:	3b 73 18             	cmp    0x18(%rbx),%esi
180045047:	0f 82 55 ff ff ff    	jb     0x180044fa2
18004504d:	48 8b 6c 24 70       	mov    0x70(%rsp),%rbp
180045052:	44 8b ac 24 80 00 00 	mov    0x80(%rsp),%r13d
180045059:	00
18004505a:	03 7d 34             	add    0x34(%rbp),%edi
18004505d:	41 3b fd             	cmp    %r13d,%edi
180045060:	0f 82 17 ff ff ff    	jb     0x180044f7d
180045066:	48 8b 5c 24 78       	mov    0x78(%rsp),%rbx
18004506b:	48 83 c4 30          	add    $0x30,%rsp
18004506f:	41 5f                	pop    %r15
180045071:	41 5e                	pop    %r14
180045073:	41 5d                	pop    %r13
180045075:	41 5c                	pop    %r12
180045077:	5f                   	pop    %rdi
180045078:	5e                   	pop    %rsi
180045079:	5d                   	pop    %rbp
18004507a:	c3                   	ret
18004507b:	cc                   	int3
18004507c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180045081:	57                   	push   %rdi
180045082:	48 83 ec 20          	sub    $0x20,%rsp
180045086:	8b da                	mov    %edx,%ebx
180045088:	48 8b f9             	mov    %rcx,%rdi
18004508b:	e8 d0 41 0f 00       	call   0x180139260
180045090:	f6 c3 01             	test   $0x1,%bl
180045093:	74 08                	je     0x18004509d
180045095:	48 8b cf             	mov    %rdi,%rcx
180045098:	e8 bf 18 00 00       	call   0x18004695c
18004509d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800450a2:	48 8b c7             	mov    %rdi,%rax
1800450a5:	48 83 c4 20          	add    $0x20,%rsp
1800450a9:	5f                   	pop    %rdi
1800450aa:	c3                   	ret
1800450ab:	cc                   	int3
1800450ac:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800450b1:	57                   	push   %rdi
1800450b2:	48 83 ec 20          	sub    $0x20,%rsp
1800450b6:	8b da                	mov    %edx,%ebx
1800450b8:	48 8b f9             	mov    %rcx,%rdi
1800450bb:	e8 54 4e 0f 00       	call   0x180139f14
1800450c0:	f6 c3 01             	test   $0x1,%bl
1800450c3:	74 08                	je     0x1800450cd
1800450c5:	48 8b cf             	mov    %rdi,%rcx
1800450c8:	e8 8f 18 00 00       	call   0x18004695c
1800450cd:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800450d2:	48 8b c7             	mov    %rdi,%rax
1800450d5:	48 83 c4 20          	add    $0x20,%rsp
1800450d9:	5f                   	pop    %rdi
1800450da:	c3                   	ret
1800450db:	cc                   	int3
1800450dc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800450e1:	57                   	push   %rdi
1800450e2:	48 83 ec 20          	sub    $0x20,%rsp
1800450e6:	48 8b d9             	mov    %rcx,%rbx
1800450e9:	f6 c2 02             	test   $0x2,%dl
1800450ec:	74 39                	je     0x180045127
1800450ee:	48 8d 79 f8          	lea    -0x8(%rcx),%rdi
1800450f2:	48 8b 07             	mov    (%rdi),%rax
1800450f5:	48 6b c8 58          	imul   $0x58,%rax,%rcx
1800450f9:	48 03 cb             	add    %rbx,%rcx
1800450fc:	48 85 c0             	test   %rax,%rax
1800450ff:	74 14                	je     0x180045115
180045101:	4c 8d 05 c0 de 0f 00 	lea    0xfdec0(%rip),%r8        # 0x180142fc8
180045108:	48 8d 49 a8          	lea    -0x58(%rcx),%rcx
18004510c:	4c 89 01             	mov    %r8,(%rcx)
18004510f:	48 83 e8 01          	sub    $0x1,%rax
180045113:	75 f3                	jne    0x180045108
180045115:	f6 c2 01             	test   $0x1,%dl
180045118:	74 08                	je     0x180045122
18004511a:	48 8b cf             	mov    %rdi,%rcx
18004511d:	e8 3a 18 00 00       	call   0x18004695c
180045122:	48 8b c7             	mov    %rdi,%rax
180045125:	eb 17                	jmp    0x18004513e
180045127:	4c 8d 05 9a de 0f 00 	lea    0xfde9a(%rip),%r8        # 0x180142fc8
18004512e:	4c 89 01             	mov    %r8,(%rcx)
180045131:	f6 c2 01             	test   $0x1,%dl
180045134:	74 05                	je     0x18004513b
180045136:	e8 21 18 00 00       	call   0x18004695c
18004513b:	48 8b c3             	mov    %rbx,%rax
18004513e:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180045143:	48 83 c4 20          	add    $0x20,%rsp
180045147:	5f                   	pop    %rdi
180045148:	c3                   	ret
180045149:	cc                   	int3
18004514a:	cc                   	int3
18004514b:	cc                   	int3
18004514c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180045151:	57                   	push   %rdi
180045152:	48 83 ec 20          	sub    $0x20,%rsp
180045156:	8b da                	mov    %edx,%ebx
180045158:	48 8b f9             	mov    %rcx,%rdi
18004515b:	e8 50 8e 0f 00       	call   0x18013dfb0
180045160:	f6 c3 01             	test   $0x1,%bl
180045163:	74 08                	je     0x18004516d
180045165:	48 8b cf             	mov    %rdi,%rcx
180045168:	e8 ef 17 00 00       	call   0x18004695c
18004516d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180045172:	48 8b c7             	mov    %rdi,%rax
180045175:	48 83 c4 20          	add    $0x20,%rsp
180045179:	5f                   	pop    %rdi
18004517a:	c3                   	ret
18004517b:	cc                   	int3
18004517c:	48 8b 41 60          	mov    0x60(%rcx),%rax
180045180:	ba fd 03 00 00       	mov    $0x3fd,%edx
180045185:	4c 8b c1             	mov    %rcx,%r8
180045188:	4c 8b 48 20          	mov    0x20(%rax),%r9
18004518c:	4c 3b ca             	cmp    %rdx,%r9
18004518f:	74 27                	je     0x1800451b8
180045191:	b9 fe 01 00 00       	mov    $0x1fe,%ecx
180045196:	4c 3b c9             	cmp    %rcx,%r9
180045199:	72 06                	jb     0x1800451a1
18004519b:	41 8d 41 04          	lea    0x4(%r9),%eax
18004519f:	eb 12                	jmp    0x1800451b3
1800451a1:	41 2b c9             	sub    %r9d,%ecx
1800451a4:	b8 04 00 00 00       	mov    $0x4,%eax
1800451a9:	d1 e9                	shr    $1,%ecx
1800451ab:	3b c8                	cmp    %eax,%ecx
1800451ad:	0f 47 c1             	cmova  %ecx,%eax
1800451b0:	41 03 c1             	add    %r9d,%eax
1800451b3:	3b c2                	cmp    %edx,%eax
1800451b5:	0f 42 d0             	cmovb  %eax,%edx
1800451b8:	41 89 50 30          	mov    %edx,0x30(%r8)
1800451bc:	c3                   	ret
1800451bd:	cc                   	int3
1800451be:	cc                   	int3
1800451bf:	cc                   	int3
1800451c0:	48 83 ec 28          	sub    $0x28,%rsp
1800451c4:	4c 8b c1             	mov    %rcx,%r8
1800451c7:	48 83 c1 20          	add    $0x20,%rcx
1800451cb:	e8 28 1a 00 00       	call   0x180046bf8
1800451d0:	49 8b 48 28          	mov    0x28(%r8),%rcx
1800451d4:	8b d2                	mov    %edx,%edx
1800451d6:	ff 49 10             	decl   0x10(%rcx)
1800451d9:	8b 49 10             	mov    0x10(%rcx),%ecx
1800451dc:	48 8b 4c c8 18       	mov    0x18(%rax,%rcx,8),%rcx
1800451e1:	48 89 4c d0 18       	mov    %rcx,0x18(%rax,%rdx,8)
1800451e6:	48 83 c4 28          	add    $0x28,%rsp
1800451ea:	c3                   	ret
1800451eb:	cc                   	int3
1800451ec:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800451f1:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
1800451f6:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
1800451fb:	57                   	push   %rdi
1800451fc:	41 56                	push   %r14
1800451fe:	41 57                	push   %r15
180045200:	48 83 ec 30          	sub    $0x30,%rsp
180045204:	48 8b d9             	mov    %rcx,%rbx
180045207:	48 83 c1 20          	add    $0x20,%rcx
18004520b:	e8 e8 19 00 00       	call   0x180046bf8
180045210:	48 8b 73 28          	mov    0x28(%rbx),%rsi
180045214:	33 ff                	xor    %edi,%edi
180045216:	4c 8b f0             	mov    %rax,%r14
180045219:	85 d2                	test   %edx,%edx
18004521b:	0f 85 ab 00 00 00    	jne    0x1800452cc
180045221:	f7 da                	neg    %edx
180045223:	89 54 24 58          	mov    %edx,0x58(%rsp)
180045227:	39 7e 10             	cmp    %edi,0x10(%rsi)
18004522a:	76 64                	jbe    0x180045290
18004522c:	48 8b 43 08          	mov    0x8(%rbx),%rax
180045230:	48 8d 54 24 58       	lea    0x58(%rsp),%rdx
180045235:	8b 4b 18             	mov    0x18(%rbx),%ecx
180045238:	45 33 c9             	xor    %r9d,%r9d
18004523b:	4d 8b 44 fe 18       	mov    0x18(%r14,%rdi,8),%r8
180045240:	49 d3 e0             	shl    %cl,%r8
180045243:	48 8b 88 60 01 00 00 	mov    0x160(%rax),%rcx
18004524a:	48 89 54 24 20       	mov    %rdx,0x20(%rsp)
18004524f:	41 8d 51 0b          	lea    0xb(%r9),%edx
180045253:	48 8b 01             	mov    (%rcx),%rax
180045256:	48 8b 40 60          	mov    0x60(%rax),%rax
18004525a:	ff d0                	call   *%rax
18004525c:	0f 1f 00             	nopl   (%rax)
18004525f:	85 c0                	test   %eax,%eax
180045261:	74 0b                	je     0x18004526e
180045263:	3d 25 02 00 c0       	cmp    $0xc0000225,%eax
180045268:	74 04                	je     0x18004526e
18004526a:	ff c7                	inc    %edi
18004526c:	eb 1d                	jmp    0x18004528b
18004526e:	48 8d 4b 20          	lea    0x20(%rbx),%rcx
180045272:	e8 81 19 00 00       	call   0x180046bf8
180045277:	48 8b 4b 28          	mov    0x28(%rbx),%rcx
18004527b:	ff 49 10             	decl   0x10(%rcx)
18004527e:	8b 49 10             	mov    0x10(%rcx),%ecx
180045281:	48 8b 4c c8 18       	mov    0x18(%rax,%rcx,8),%rcx
180045286:	48 89 4c f8 18       	mov    %rcx,0x18(%rax,%rdi,8)
18004528b:	3b 7e 10             	cmp    0x10(%rsi),%edi
18004528e:	72 9c                	jb     0x18004522c
180045290:	48 8b 43 60          	mov    0x60(%rbx),%rax
180045294:	b9 fd 03 00 00       	mov    $0x3fd,%ecx
180045299:	4c 8b 48 20          	mov    0x20(%rax),%r9
18004529d:	4c 3b c9             	cmp    %rcx,%r9
1800452a0:	74 27                	je     0x1800452c9
1800452a2:	ba fe 01 00 00       	mov    $0x1fe,%edx
1800452a7:	4c 3b ca             	cmp    %rdx,%r9
1800452aa:	72 06                	jb     0x1800452b2
1800452ac:	41 8d 41 04          	lea    0x4(%r9),%eax
1800452b0:	eb 12                	jmp    0x1800452c4
1800452b2:	41 2b d1             	sub    %r9d,%edx
1800452b5:	b8 04 00 00 00       	mov    $0x4,%eax
1800452ba:	d1 ea                	shr    $1,%edx
1800452bc:	3b d0                	cmp    %eax,%edx
1800452be:	0f 47 c2             	cmova  %edx,%eax
1800452c1:	41 03 c1             	add    %r9d,%eax
1800452c4:	3b c1                	cmp    %ecx,%eax
1800452c6:	0f 42 c8             	cmovb  %eax,%ecx
1800452c9:	89 4b 30             	mov    %ecx,0x30(%rbx)
1800452cc:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1800452d1:	48 8b 6c 24 60       	mov    0x60(%rsp),%rbp
1800452d6:	48 8b 74 24 68       	mov    0x68(%rsp),%rsi
1800452db:	48 83 c4 30          	add    $0x30,%rsp
1800452df:	41 5f                	pop    %r15
1800452e1:	41 5e                	pop    %r14
1800452e3:	5f                   	pop    %rdi
1800452e4:	c3                   	ret
1800452e5:	cc                   	int3
1800452e6:	cc                   	int3
1800452e7:	cc                   	int3
1800452e8:	48 8b c4             	mov    %rsp,%rax
1800452eb:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800452ef:	48 89 70 10          	mov    %rsi,0x10(%rax)
1800452f3:	48 89 78 18          	mov    %rdi,0x18(%rax)
1800452f7:	55                   	push   %rbp
1800452f8:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
1800452fc:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
180045303:	48 8b 71 28          	mov    0x28(%rcx),%rsi
180045307:	48 8b d9             	mov    %rcx,%rbx
18004530a:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18004530f:	e8 54 1c 00 00       	call   0x180046f68
180045314:	83 7b 34 00          	cmpl   $0x0,0x34(%rbx)
180045318:	75 06                	jne    0x180045320
18004531a:	48 8b 7b 40          	mov    0x40(%rbx),%rdi
18004531e:	eb 04                	jmp    0x180045324
180045320:	48 8b 7b 48          	mov    0x48(%rbx),%rdi
180045324:	8b 46 10             	mov    0x10(%rsi),%eax
180045327:	48 8b d6             	mov    %rsi,%rdx
18004532a:	83 66 14 00          	andl   $0x0,0x14(%rsi)
18004532e:	44 8d 1c c5 18 00 00 	lea    0x18(,%rax,8),%r11d
180045335:	00
180045336:	45 8b c3             	mov    %r11d,%r8d
180045339:	e8 46 eb fe ff       	call   0x180033e84
18004533e:	89 46 14             	mov    %eax,0x14(%rsi)
180045341:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180045346:	48 8b 43 08          	mov    0x8(%rbx),%rax
18004534a:	8b 48 7c             	mov    0x7c(%rax),%ecx
18004534d:	48 8b 43 28          	mov    0x28(%rbx),%rax
180045351:	81 4d b3 04 00 00 10 	orl    $0x10000004,-0x4d(%rbp)
180045358:	48 89 45 df          	mov    %rax,-0x21(%rbp)
18004535c:	41 8d 43 ff          	lea    -0x1(%r11),%eax
180045360:	03 c1                	add    %ecx,%eax
180045362:	c7 45 d7 01 00 00 00 	movl   $0x1,-0x29(%rbp)
180045369:	f7 d9                	neg    %ecx
18004536b:	48 89 7d ef          	mov    %rdi,-0x11(%rbp)
18004536f:	23 c1                	and    %ecx,%eax
180045371:	66 c7 45 0f 04 1d    	movw   $0x1d04,0xf(%rbp)
180045377:	89 45 f7             	mov    %eax,-0x9(%rbp)
18004537a:	48 8b 43 10          	mov    0x10(%rbx),%rax
18004537e:	48 89 5d 47          	mov    %rbx,0x47(%rbp)
180045382:	48 8b 88 60 01 00 00 	mov    0x160(%rax),%rcx
180045389:	48 89 4d 4f          	mov    %rcx,0x4f(%rbp)
18004538d:	48 8b 01             	mov    (%rcx),%rax
180045390:	48 8b 40 08          	mov    0x8(%rax),%rax
180045394:	ff d0                	call   *%rax
180045396:	0f 1f 00             	nopl   (%rax)
180045399:	8b 7d 17             	mov    0x17(%rbp),%edi
18004539c:	85 ff                	test   %edi,%edi
18004539e:	78 23                	js     0x1800453c3
1800453a0:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
1800453a4:	8b 41 2c             	mov    0x2c(%rcx),%eax
1800453a7:	a8 01                	test   $0x1,%al
1800453a9:	75 15                	jne    0x1800453c0
1800453ab:	41 b0 03             	mov    $0x3,%r8b
1800453ae:	48 89 4d 47          	mov    %rcx,0x47(%rbp)
1800453b2:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800453b7:	48 89 4d 4f          	mov    %rcx,0x4f(%rbp)
1800453bb:	e8 50 21 00 00       	call   0x180047510
1800453c0:	8b 7d 17             	mov    0x17(%rbp),%edi
1800453c3:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800453c8:	e8 6b 1c 00 00       	call   0x180047038
1800453cd:	4c 8d 9c 24 00 01 00 	lea    0x100(%rsp),%r11
1800453d4:	00
1800453d5:	8b c7                	mov    %edi,%eax
1800453d7:	49 8b 5b 10          	mov    0x10(%r11),%rbx
1800453db:	49 8b 73 18          	mov    0x18(%r11),%rsi
1800453df:	49 8b 7b 20          	mov    0x20(%r11),%rdi
1800453e3:	49 8b e3             	mov    %r11,%rsp
1800453e6:	5d                   	pop    %rbp
1800453e7:	c3                   	ret
1800453e8:	cc                   	int3
1800453e9:	cc                   	int3
1800453ea:	cc                   	int3
1800453eb:	cc                   	int3
1800453ec:	48 8b 41 08          	mov    0x8(%rcx),%rax
1800453f0:	48 83 c0 18          	add    $0x18,%rax
1800453f4:	c3                   	ret
1800453f5:	cc                   	int3
1800453f6:	cc                   	int3
1800453f7:	cc                   	int3
1800453f8:	48 83 ec 28          	sub    $0x28,%rsp
1800453fc:	41 80 f8 1c          	cmp    $0x1c,%r8b
180045400:	74 07                	je     0x180045409
180045402:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180045407:	eb 08                	jmp    0x180045411
180045409:	4d 8b c1             	mov    %r9,%r8
18004540c:	e8 47 00 00 00       	call   0x180045458
180045411:	48 83 c4 28          	add    $0x28,%rsp
180045415:	c3                   	ret
180045416:	cc                   	int3
180045417:	cc                   	int3
180045418:	48 83 ec 28          	sub    $0x28,%rsp
18004541c:	41 80 f8 1c          	cmp    $0x1c,%r8b
180045420:	75 13                	jne    0x180045435
180045422:	48 8b 8a d8 00 00 00 	mov    0xd8(%rdx),%rcx
180045429:	48 8b 01             	mov    (%rcx),%rax
18004542c:	48 8b 40 08          	mov    0x8(%rax),%rax
180045430:	ff d0                	call   *%rax
180045432:	0f 1f 00             	nopl   (%rax)
180045435:	48 83 c4 28          	add    $0x28,%rsp
180045439:	c3                   	ret
18004543a:	cc                   	int3
18004543b:	cc                   	int3
18004543c:	48 83 ec 28          	sub    $0x28,%rsp
180045440:	8b 82 a0 00 00 00    	mov    0xa0(%rdx),%eax
180045446:	41 80 f8 1c          	cmp    $0x1c,%r8b
18004544a:	75 05                	jne    0x180045451
18004544c:	e8 b3 01 00 00       	call   0x180045604
180045451:	48 83 c4 28          	add    $0x28,%rsp
180045455:	c3                   	ret
180045456:	cc                   	int3
180045457:	cc                   	int3
180045458:	48 8b c4             	mov    %rsp,%rax
18004545b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004545f:	48 89 68 10          	mov    %rbp,0x10(%rax)
180045463:	48 89 70 18          	mov    %rsi,0x18(%rax)
180045467:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004546b:	41 54                	push   %r12
18004546d:	41 56                	push   %r14
18004546f:	41 57                	push   %r15
180045471:	48 83 ec 20          	sub    $0x20,%rsp
180045475:	33 ff                	xor    %edi,%edi
180045477:	4c 8b fa             	mov    %rdx,%r15
18004547a:	48 8b e9             	mov    %rcx,%rbp
18004547d:	4d 85 c0             	test   %r8,%r8
180045480:	74 0a                	je     0x18004548c
180045482:	bf 02 00 00 c0       	mov    $0xc0000002,%edi
180045487:	e9 56 01 00 00       	jmp    0x1800455e2
18004548c:	48 8b 41 10          	mov    0x10(%rcx),%rax
180045490:	33 f6                	xor    %esi,%esi
180045492:	44 8b a2 80 00 00 00 	mov    0x80(%rdx),%r12d