18004930e:	53                   	push   %rbx
18004930f:	56                   	push   %rsi
180049310:	57                   	push   %rdi
180049311:	41 54                	push   %r12
180049313:	41 55                	push   %r13
180049315:	41 56                	push   %r14
180049317:	41 57                	push   %r15
180049319:	48 8b ec             	mov    %rsp,%rbp
18004931c:	48 83 ec 58          	sub    $0x58,%rsp
180049320:	44 0f b7 61 1c       	movzwl 0x1c(%rcx),%r12d
180049325:	33 f6                	xor    %esi,%esi
180049327:	66 41 83 ec 10       	sub    $0x10,%r12w
18004932c:	66 89 75 60          	mov    %si,0x60(%rbp)
180049330:	66 44 89 65 48       	mov    %r12w,0x48(%rbp)
180049335:	44 8b fa             	mov    %edx,%r15d
180049338:	48 8b d9             	mov    %rcx,%rbx
18004933b:	85 d2                	test   %edx,%edx
18004933d:	75 0e                	jne    0x18004934d
18004933f:	33 d2                	xor    %edx,%edx
180049341:	b8 00 02 00 00       	mov    $0x200,%eax
180049346:	f7 71 1c             	divl   0x1c(%rcx)
180049349:	8b c8                	mov    %eax,%ecx
18004934b:	eb 02                	jmp    0x18004934f
18004934d:	8b ce                	mov    %esi,%ecx
18004934f:	45 85 ff             	test   %r15d,%r15d
180049352:	0f 94 c0             	sete   %al
180049355:	44 0f b6 f0          	movzbl %al,%r14d
180049359:	b8 01 00 00 00       	mov    $0x1,%eax
18004935e:	44 8d 60 04          	lea    0x4(%rax),%r12d
180049362:	66 44 39 63 28       	cmp    %r12w,0x28(%rbx)
180049367:	44 0f 44 f0          	cmove  %eax,%r14d
18004936b:	3b 8b 90 00 00 00    	cmp    0x90(%rbx),%ecx
180049371:	0f 83 7a 02 00 00    	jae    0x1800495f1
180049377:	42 8d 3c 39          	lea    (%rcx,%r15,1),%edi
18004937b:	41 f7 df             	neg    %r15d
18004937e:	44 89 7d 50          	mov    %r15d,0x50(%rbp)
180049382:	45 8d 2c 3f          	lea    (%r15,%rdi,1),%r13d
180049386:	8b d7                	mov    %edi,%edx
180049388:	44 0f af 6b 1c       	imul   0x1c(%rbx),%r13d
18004938d:	48 8b cb             	mov    %rbx,%rcx
180049390:	4d 03 e8             	add    %r8,%r13
180049393:	4c 89 6d d8          	mov    %r13,-0x28(%rbp)
180049397:	e8 74 ed ff ff       	call   0x180048110
18004939c:	48 89 45 c8          	mov    %rax,-0x38(%rbp)
1800493a0:	48 85 c0             	test   %rax,%rax
1800493a3:	75 29                	jne    0x1800493ce
1800493a5:	48 21 45 e8          	and    %rax,-0x18(%rbp)
1800493a9:	4c 8d 45 e0          	lea    -0x20(%rbp),%r8
1800493ad:	c7 45 e0 42 42 44 53 	movl   $0x53444242,-0x20(%rbp)
1800493b4:	4d 8b cd             	mov    %r13,%r9
1800493b7:	89 7d e4             	mov    %edi,-0x1c(%rbp)
1800493ba:	41 8b d4             	mov    %r12d,%edx
1800493bd:	48 8d 0d ac 56 10 00 	lea    0x1056ac(%rip),%rcx        # 0x18014ea70
1800493c4:	e8 33 6a 00 00       	call   0x18004fdfc
1800493c9:	e9 0d 02 00 00       	jmp    0x1800495db
1800493ce:	44 8b 20             	mov    (%rax),%r12d
1800493d1:	48 8d 8b c8 00 00 00 	lea    0xc8(%rbx),%rcx
1800493d8:	41 8b d4             	mov    %r12d,%edx
1800493db:	e8 fc a4 ff ff       	call   0x1800438dc
1800493e0:	48 8b f0             	mov    %rax,%rsi
1800493e3:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
1800493e7:	0f b7 43 28          	movzwl 0x28(%rbx),%eax
1800493eb:	83 e8 02             	sub    $0x2,%eax
1800493ee:	74 59                	je     0x180049449
1800493f0:	83 e8 01             	sub    $0x1,%eax
1800493f3:	74 2a                	je     0x18004941f
1800493f5:	83 f8 01             	cmp    $0x1,%eax
1800493f8:	75 75                	jne    0x18004946f
1800493fa:	0f b7 46 12          	movzwl 0x12(%rsi),%eax
1800493fe:	a8 02                	test   $0x2,%al
180049400:	74 08                	je     0x18004940a
180049402:	41 be 01 00 00 00    	mov    $0x1,%r14d
180049408:	eb 30                	jmp    0x18004943a
18004940a:	41 b9 01 00 00 00    	mov    $0x1,%r9d
180049410:	41 84 c1             	test   %al,%r9b
180049413:	74 5a                	je     0x18004946f
180049415:	41 3b fc             	cmp    %r12d,%edi
180049418:	75 55                	jne    0x18004946f
18004941a:	45 8a f1             	mov    %r9b,%r14b
18004941d:	eb 50                	jmp    0x18004946f
18004941f:	0f b7 46 12          	movzwl 0x12(%rsi),%eax
180049423:	a8 02                	test   $0x2,%al
180049425:	74 05                	je     0x18004942c
180049427:	41 3b fc             	cmp    %r12d,%edi
18004942a:	74 25                	je     0x180049451
18004942c:	41 b9 01 00 00 00    	mov    $0x1,%r9d
180049432:	41 84 c1             	test   %al,%r9b
180049435:	74 38                	je     0x18004946f
180049437:	45 8a f1             	mov    %r9b,%r14b
18004943a:	33 f6                	xor    %esi,%esi
18004943c:	48 89 75 e8          	mov    %rsi,-0x18(%rbp)
180049440:	44 8d 66 05          	lea    0x5(%rsi),%r12d
180049444:	e9 60 ff ff ff       	jmp    0x1800493a9
180049449:	0f b7 46 12          	movzwl 0x12(%rsi),%eax
18004944d:	a8 02                	test   $0x2,%al
18004944f:	74 08                	je     0x180049459
180049451:	41 be 01 00 00 00    	mov    $0x1,%r14d
180049457:	eb 16                	jmp    0x18004946f
180049459:	41 b9 01 00 00 00    	mov    $0x1,%r9d
18004945f:	41 84 c1             	test   %al,%r9b
180049462:	74 0b                	je     0x18004946f
180049464:	41 3b fc             	cmp    %r12d,%edi
180049467:	45 0f b6 f6          	movzbl %r14b,%r14d
18004946b:	45 0f 44 f1          	cmove  %r9d,%r14d
18004946f:	33 c0                	xor    %eax,%eax
180049471:	89 7d e4             	mov    %edi,-0x1c(%rbp)
180049474:	66 89 45 ec          	mov    %ax,-0x14(%rbp)
180049478:	0f b7 43 1c          	movzwl 0x1c(%rbx),%eax
18004947c:	66 83 e8 10          	sub    $0x10,%ax
180049480:	44 89 65 e8          	mov    %r12d,-0x18(%rbp)
180049484:	44 0f b7 c0          	movzwl %ax,%r8d
180049488:	0f b7 46 14          	movzwl 0x14(%rsi),%eax
18004948c:	66 83 c0 08          	add    $0x8,%ax
180049490:	0f b7 c0             	movzwl %ax,%eax
180049493:	41 8d 48 ff          	lea    -0x1(%r8),%ecx
180049497:	03 c8                	add    %eax,%ecx
180049499:	8b c1                	mov    %ecx,%eax
18004949b:	99                   	cltd
18004949c:	41 f7 f8             	idiv   %r8d
18004949f:	2b ca                	sub    %edx,%ecx
1800494a1:	8b c1                	mov    %ecx,%eax
1800494a3:	99                   	cltd
1800494a4:	41 f7 f8             	idiv   %r8d
1800494a7:	66 89 45 ee          	mov    %ax,-0x12(%rbp)
1800494ab:	41 3b fc             	cmp    %r12d,%edi
1800494ae:	74 44                	je     0x1800494f4
1800494b0:	41 8b d4             	mov    %r12d,%edx
1800494b3:	48 8b cb             	mov    %rbx,%rcx
1800494b6:	e8 55 ec ff ff       	call   0x180048110
1800494bb:	48 3b 45 c8          	cmp    -0x38(%rbp),%rax
1800494bf:	74 33                	je     0x1800494f4
1800494c1:	44 0f b7 7d ec       	movzwl -0x14(%rbp),%r15d
1800494c6:	be 01 00 00 00       	mov    $0x1,%esi
1800494cb:	4c 8b 6d c8          	mov    -0x38(%rbp),%r13
1800494cf:	8b 50 04             	mov    0x4(%rax),%edx
1800494d2:	48 8b cb             	mov    %rbx,%rcx
1800494d5:	66 44 03 fe          	add    %si,%r15w
1800494d9:	e8 32 ec ff ff       	call   0x180048110
1800494de:	49 3b c5             	cmp    %r13,%rax
1800494e1:	75 ec                	jne    0x1800494cf
1800494e3:	48 8b 75 d0          	mov    -0x30(%rbp),%rsi
1800494e7:	4c 8b 6d d8          	mov    -0x28(%rbp),%r13
1800494eb:	66 44 89 7d ec       	mov    %r15w,-0x14(%rbp)
1800494f0:	44 8b 7d 50          	mov    0x50(%rbp),%r15d
1800494f4:	4d 8b cd             	mov    %r13,%r9
1800494f7:	c7 45 e0 42 42 44 53 	movl   $0x53444242,-0x20(%rbp)
1800494fe:	41 bd 05 00 00 00    	mov    $0x5,%r13d
180049504:	4c 8d 45 e0          	lea    -0x20(%rbp),%r8
180049508:	41 8b d5             	mov    %r13d,%edx
18004950b:	48 8d 0d 5e 55 10 00 	lea    0x10555e(%rip),%rcx        # 0x18014ea70
180049512:	e8 e5 68 00 00       	call   0x18004fdfc
180049517:	4c 8b d0             	mov    %rax,%r10
18004951a:	41 3b fc             	cmp    %r12d,%edi
18004951d:	75 7a                	jne    0x180049599
18004951f:	0f b7 4b 28          	movzwl 0x28(%rbx),%ecx
180049523:	41 8d 45 fc          	lea    -0x4(%r13),%eax
180049527:	66 83 e9 03          	sub    $0x3,%cx
18004952b:	66 3b c8             	cmp    %ax,%cx
18004952e:	77 1f                	ja     0x18004954f
180049530:	0f b7 4e 12          	movzwl 0x12(%rsi),%ecx
180049534:	b8 fc ff 00 00       	mov    $0xfffc,%eax
180049539:	44 0f b7 e1          	movzwl %cx,%r12d
18004953d:	66 41 83 e4 03       	and    $0x3,%r12w
180049542:	66 23 c8             	and    %ax,%cx
180049545:	44 89 65 60          	mov    %r12d,0x60(%rbp)
180049549:	66 89 4e 12          	mov    %cx,0x12(%rsi)
18004954d:	eb 04                	jmp    0x180049553
18004954f:	44 8b 65 60          	mov    0x60(%rbp),%r12d
180049553:	4c 8d 46 10          	lea    0x10(%rsi),%r8
180049557:	4d 8b ca             	mov    %r10,%r9
18004955a:	41 8b d5             	mov    %r13d,%edx
18004955d:	48 8d 0d 4c 55 10 00 	lea    0x10554c(%rip),%rcx        # 0x18014eab0
180049564:	e8 93 68 00 00       	call   0x18004fdfc
180049569:	33 c9                	xor    %ecx,%ecx
18004956b:	66 45 85 e4          	test   %r12w,%r12w
18004956f:	74 08                	je     0x180049579
180049571:	66 44 09 66 12       	or     %r12w,0x12(%rsi)
180049576:	89 4d 60             	mov    %ecx,0x60(%rbp)
180049579:	0f b7 4e 14          	movzwl 0x14(%rsi),%ecx
18004957d:	0f b7 55 48          	movzwl 0x48(%rbp),%edx
180049581:	66 83 ea 08          	sub    $0x8,%dx
180049585:	66 3b d1             	cmp    %cx,%dx
180049588:	66 0f 43 d1          	cmovae %cx,%dx
18004958c:	48 8b c8             	mov    %rax,%rcx
18004958f:	44 0f b7 c2          	movzwl %dx,%r8d
180049593:	48 8d 56 1c          	lea    0x1c(%rsi),%rdx
180049597:	eb 38                	jmp    0x1800495d1
180049599:	0f b7 45 48          	movzwl 0x48(%rbp),%eax
18004959d:	0f b7 55 ec          	movzwl -0x14(%rbp),%edx
1800495a1:	8b c8                	mov    %eax,%ecx
1800495a3:	44 0f b7 4e 14       	movzwl 0x14(%rsi),%r9d
1800495a8:	44 0f b7 c0          	movzwl %ax,%r8d
1800495ac:	0f af d0             	imul   %eax,%edx
1800495af:	41 8b c1             	mov    %r9d,%eax
1800495b2:	83 ea 08             	sub    $0x8,%edx
1800495b5:	2b c2                	sub    %edx,%eax
1800495b7:	3b c8                	cmp    %eax,%ecx
1800495b9:	72 08                	jb     0x1800495c3
1800495bb:	45 0f b7 c1          	movzwl %r9w,%r8d
1800495bf:	66 44 2b c2          	sub    %dx,%r8w
1800495c3:	48 83 c2 1c          	add    $0x1c,%rdx
1800495c7:	45 0f b7 c0          	movzwl %r8w,%r8d
1800495cb:	48 03 d6             	add    %rsi,%rdx
1800495ce:	49 8b ca             	mov    %r10,%rcx
1800495d1:	e8 ea c3 0e 00       	call   0x1801359c0
1800495d6:	33 f6                	xor    %esi,%esi
1800495d8:	45 8b e5             	mov    %r13d,%r12d
1800495db:	4c 8b 45 58          	mov    0x58(%rbp),%r8
1800495df:	ff c7                	inc    %edi
1800495e1:	41 8d 0c 3f          	lea    (%r15,%rdi,1),%ecx
1800495e5:	3b 8b 90 00 00 00    	cmp    0x90(%rbx),%ecx
1800495eb:	0f 82 91 fd ff ff    	jb     0x180049382
1800495f1:	41 8a c6             	mov    %r14b,%al
1800495f4:	48 83 c4 58          	add    $0x58,%rsp
1800495f8:	41 5f                	pop    %r15
1800495fa:	41 5e                	pop    %r14
1800495fc:	41 5d                	pop    %r13
1800495fe:	41 5c                	pop    %r12
180049600:	5f                   	pop    %rdi
180049601:	5e                   	pop    %rsi
180049602:	5b                   	pop    %rbx
180049603:	5d                   	pop    %rbp
180049604:	c3                   	ret
180049605:	cc                   	int3
180049606:	cc                   	int3
180049607:	cc                   	int3
180049608:	48 8b c4             	mov    %rsp,%rax
18004960b:	48 89 58 08          	mov    %rbx,0x8(%rax)
18004960f:	48 89 70 10          	mov    %rsi,0x10(%rax)
180049613:	48 89 78 18          	mov    %rdi,0x18(%rax)
180049617:	55                   	push   %rbp
180049618:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
18004961c:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
180049623:	4c 8b d9             	mov    %rcx,%r11
180049626:	33 ff                	xor    %edi,%edi
180049628:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
18004962d:	8b df                	mov    %edi,%ebx
18004962f:	4c 8b d2             	mov    %rdx,%r10
180049632:	e8 31 d9 ff ff       	call   0x180046f68
180049637:	83 4d b3 04          	orl    $0x4,-0x4d(%rbp)
18004963b:	8d 57 01             	lea    0x1(%rdi),%edx
18004963e:	49 8b 83 c0 00 00 00 	mov    0xc0(%r11),%rax
180049645:	89 55 d7             	mov    %edx,-0x29(%rbp)
180049648:	48 89 45 df          	mov    %rax,-0x21(%rbp)
18004964c:	4c 89 55 ef          	mov    %r10,-0x11(%rbp)
180049650:	44 89 45 f7          	mov    %r8d,-0x9(%rbp)
180049654:	4c 89 4d e7          	mov    %r9,-0x19(%rbp)
180049658:	c6 45 0f 04          	movb   $0x4,0xf(%rbp)
18004965c:	4c 89 5d 47          	mov    %r11,0x47(%rbp)
180049660:	4c 89 5d 4f          	mov    %r11,0x4f(%rbp)
180049664:	4d 85 c9             	test   %r9,%r9
180049667:	74 19                	je     0x180049682
180049669:	49 8b 03             	mov    (%r11),%rax
18004966c:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180049671:	49 8b cb             	mov    %r11,%rcx
180049674:	48 8b 40 08          	mov    0x8(%rax),%rax
180049678:	ff d0                	call   *%rax
18004967a:	0f 1f 00             	nopl   (%rax)
18004967d:	8b 7d 17             	mov    0x17(%rbp),%edi
180049680:	eb 5c                	jmp    0x1800496de
180049682:	49 81 c3 18 01 00 00 	add    $0x118,%r11
180049689:	49 8b 03             	mov    (%r11),%rax
18004968c:	49 3b c3             	cmp    %r11,%rax
18004968f:	74 28                	je     0x1800496b9
180049691:	83 60 20 f7          	andl   $0xfffffff7,0x20(%rax)
180049695:	8b 48 20             	mov    0x20(%rax),%ecx
180049698:	84 ca                	test   %cl,%dl
18004969a:	74 08                	je     0x1800496a4
18004969c:	83 c9 08             	or     $0x8,%ecx
18004969f:	89 48 20             	mov    %ecx,0x20(%rax)
1800496a2:	03 da                	add    %edx,%ebx
1800496a4:	48 8b 00             	mov    (%rax),%rax
1800496a7:	49 3b c3             	cmp    %r11,%rax
1800496aa:	75 e5                	jne    0x180049691
1800496ac:	3b da                	cmp    %edx,%ebx
1800496ae:	76 09                	jbe    0x1800496b9
1800496b0:	8b c3                	mov    %ebx,%eax
1800496b2:	d1 e8                	shr    $1,%eax
1800496b4:	89 45 ff             	mov    %eax,-0x1(%rbp)
1800496b7:	eb 03                	jmp    0x1800496bc
1800496b9:	89 5d ff             	mov    %ebx,-0x1(%rbp)
1800496bc:	8b f7                	mov    %edi,%esi
1800496be:	85 db                	test   %ebx,%ebx
1800496c0:	74 1c                	je     0x1800496de
1800496c2:	48 8b 4d 4f          	mov    0x4f(%rbp),%rcx
1800496c6:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
1800496cb:	48 8b 01             	mov    (%rcx),%rax
1800496ce:	48 8b 40 08          	mov    0x8(%rax),%rax
1800496d2:	ff d0                	call   *%rax
1800496d4:	0f 1f 00             	nopl   (%rax)
1800496d7:	03 75 ff             	add    -0x1(%rbp),%esi
1800496da:	3b f3                	cmp    %ebx,%esi
1800496dc:	72 e4                	jb     0x1800496c2
1800496de:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1800496e3:	e8 50 d9 ff ff       	call   0x180047038
1800496e8:	4c 8d 9c 24 00 01 00 	lea    0x100(%rsp),%r11
1800496ef:	00
1800496f0:	8b c7                	mov    %edi,%eax
1800496f2:	49 8b 5b 10          	mov    0x10(%r11),%rbx
1800496f6:	49 8b 73 18          	mov    0x18(%r11),%rsi
1800496fa:	49 8b 7b 20          	mov    0x20(%r11),%rdi
1800496fe:	49 8b e3             	mov    %r11,%rsp
180049701:	5d                   	pop    %rbp
180049702:	c3                   	ret
180049703:	cc                   	int3
180049704:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180049709:	55                   	push   %rbp
18004970a:	48 8d 6c 24 a9       	lea    -0x57(%rsp),%rbp
18004970f:	48 81 ec 00 01 00 00 	sub    $0x100,%rsp
180049716:	4c 8b c9             	mov    %rcx,%r9
180049719:	4c 8b c2             	mov    %rdx,%r8
18004971c:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
180049721:	e8 42 d8 ff ff       	call   0x180046f68
180049726:	83 4d b3 04          	orl    $0x4,-0x4d(%rbp)
18004972a:	33 db                	xor    %ebx,%ebx
18004972c:	4c 89 45 e7          	mov    %r8,-0x19(%rbp)
180049730:	c6 45 0f 09          	movb   $0x9,0xf(%rbp)
180049734:	4c 89 4d 47          	mov    %r9,0x47(%rbp)
180049738:	4c 89 4d 4f          	mov    %r9,0x4f(%rbp)
18004973c:	4d 85 c0             	test   %r8,%r8
18004973f:	74 19                	je     0x18004975a
180049741:	49 8b 01             	mov    (%r9),%rax
180049744:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
180049749:	49 8b c9             	mov    %r9,%rcx
18004974c:	48 8b 40 08          	mov    0x8(%rax),%rax
180049750:	ff d0                	call   *%rax
180049752:	0f 1f 00             	nopl   (%rax)
180049755:	8b 5d 17             	mov    0x17(%rbp),%ebx
180049758:	eb 41                	jmp    0x18004979b
18004975a:	49 8d 91 18 01 00 00 	lea    0x118(%r9),%rdx
180049761:	48 8b 02             	mov    (%rdx),%rax
180049764:	48 3b c2             	cmp    %rdx,%rax
180049767:	74 1e                	je     0x180049787
180049769:	83 60 20 f7          	andl   $0xfffffff7,0x20(%rax)
18004976d:	8b 48 20             	mov    0x20(%rax),%ecx
180049770:	f6 c1 01             	test   $0x1,%cl
180049773:	74 06                	je     0x18004977b
180049775:	83 c9 08             	or     $0x8,%ecx
180049778:	89 48 20             	mov    %ecx,0x20(%rax)
18004977b:	48 8b 00             	mov    (%rax),%rax
18004977e:	48 3b c2             	cmp    %rdx,%rax
180049781:	75 e6                	jne    0x180049769
180049783:	4c 8b 4d 4f          	mov    0x4f(%rbp),%r9
180049787:	49 8b 01             	mov    (%r9),%rax
18004978a:	48 8d 54 24 20       	lea    0x20(%rsp),%rdx
18004978f:	49 8b c9             	mov    %r9,%rcx
180049792:	48 8b 40 08          	mov    0x8(%rax),%rax
180049796:	ff d0                	call   *%rax
180049798:	0f 1f 00             	nopl   (%rax)
18004979b:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx