4174b8:	3b df                	cmp    %edi,%ebx
4174ba:	72 16                	jb     0x4174d2
4174bc:	75 05                	jne    0x4174c3
4174be:	3b 55 f4             	cmp    -0xc(%ebp),%edx
4174c1:	76 0f                	jbe    0x4174d2
4174c3:	8b 7d 0c             	mov    0xc(%ebp),%edi
4174c6:	83 c8 04             	or     $0x4,%eax
4174c9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4174cc:	85 ff                	test   %edi,%edi
4174ce:	74 ac                	je     0x41747c
4174d0:	eb 05                	jmp    0x4174d7
4174d2:	0f af d9             	imul   %ecx,%ebx
4174d5:	03 da                	add    %edx,%ebx
4174d7:	0f b7 3e             	movzwl (%esi),%edi
4174da:	83 c6 02             	add    $0x2,%esi
4174dd:	e9 6d ff ff ff       	jmp    0x41744f
4174e2:	a8 04                	test   $0x4,%al
4174e4:	75 1f                	jne    0x417505
4174e6:	a8 01                	test   $0x1,%al
4174e8:	75 40                	jne    0x41752a
4174ea:	8b c8                	mov    %eax,%ecx
4174ec:	83 e1 02             	and    $0x2,%ecx
4174ef:	74 08                	je     0x4174f9
4174f1:	81 fb 00 00 00 80    	cmp    $0x80000000,%ebx
4174f7:	77 0c                	ja     0x417505
4174f9:	85 c9                	test   %ecx,%ecx
4174fb:	75 2d                	jne    0x41752a
4174fd:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
417503:	76 25                	jbe    0x41752a
417505:	e8 73 0c ff ff       	call   0x40817d
41750a:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
417510:	8b 45 fc             	mov    -0x4(%ebp),%eax
417513:	a8 01                	test   $0x1,%al
417515:	74 05                	je     0x41751c
417517:	83 cb ff             	or     $0xffffffff,%ebx
41751a:	eb 0e                	jmp    0x41752a
41751c:	6a 00                	push   $0x0
41751e:	a8 02                	test   $0x2,%al
417520:	5b                   	pop    %ebx
417521:	0f 95 c3             	setne  %bl
417524:	81 c3 ff ff ff 7f    	add    $0x7fffffff,%ebx
41752a:	85 ff                	test   %edi,%edi
41752c:	74 02                	je     0x417530
41752e:	89 37                	mov    %esi,(%edi)
417530:	a8 02                	test   $0x2,%al
417532:	74 02                	je     0x417536
417534:	f7 db                	neg    %ebx
417536:	5f                   	pop    %edi
417537:	5e                   	pop    %esi
417538:	8b c3                	mov    %ebx,%eax
41753a:	5b                   	pop    %ebx
41753b:	c9                   	leave
41753c:	c3                   	ret
41753d:	55                   	push   %ebp
41753e:	8b ec                	mov    %esp,%ebp
417540:	6a 00                	push   $0x0
417542:	ff 75 10             	push   0x10(%ebp)
417545:	ff 75 0c             	push   0xc(%ebp)
417548:	ff 75 08             	push   0x8(%ebp)
41754b:	e8 11 fe ff ff       	call   0x417361
417550:	83 c4 10             	add    $0x10,%esp
417553:	5d                   	pop    %ebp
417554:	c3                   	ret
417555:	55                   	push   %ebp
417556:	8b ec                	mov    %esp,%ebp
417558:	83 ec 1c             	sub    $0x1c,%esp
41755b:	53                   	push   %ebx
41755c:	8b 5d 10             	mov    0x10(%ebp),%ebx
41755f:	33 d2                	xor    %edx,%edx
417561:	56                   	push   %esi
417562:	b8 4e 40 00 00       	mov    $0x404e,%eax
417567:	57                   	push   %edi
417568:	89 45 fc             	mov    %eax,-0x4(%ebp)
41756b:	89 13                	mov    %edx,(%ebx)
41756d:	89 53 04             	mov    %edx,0x4(%ebx)
417570:	89 53 08             	mov    %edx,0x8(%ebx)
417573:	39 55 0c             	cmp    %edx,0xc(%ebp)
417576:	0f 86 40 01 00 00    	jbe    0x4176bc
41757c:	8b ca                	mov    %edx,%ecx
41757e:	89 4d 10             	mov    %ecx,0x10(%ebp)
417581:	89 55 f8             	mov    %edx,-0x8(%ebp)
417584:	89 55 f4             	mov    %edx,-0xc(%ebp)
417587:	8b 55 10             	mov    0x10(%ebp),%edx
41758a:	8b f3                	mov    %ebx,%esi
41758c:	8d 7d e4             	lea    -0x1c(%ebp),%edi
41758f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417590:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417591:	a5                   	movsl  %ds:(%esi),%es:(%edi)
417592:	8b 75 f8             	mov    -0x8(%ebp),%esi
417595:	8b 7d f4             	mov    -0xc(%ebp),%edi
417598:	8b c1                	mov    %ecx,%eax
41759a:	c1 e8 1f             	shr    $0x1f,%eax
41759d:	8b ce                	mov    %esi,%ecx
41759f:	c1 e9 1f             	shr    $0x1f,%ecx
4175a2:	03 f6                	add    %esi,%esi
4175a4:	0b f0                	or     %eax,%esi
4175a6:	03 ff                	add    %edi,%edi
4175a8:	0b f9                	or     %ecx,%edi
4175aa:	03 d2                	add    %edx,%edx
4175ac:	8b c2                	mov    %edx,%eax
4175ae:	c1 e8 1f             	shr    $0x1f,%eax
4175b1:	8b ce                	mov    %esi,%ecx
4175b3:	03 f6                	add    %esi,%esi
4175b5:	0b f0                	or     %eax,%esi
4175b7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4175ba:	c1 e9 1f             	shr    $0x1f,%ecx
4175bd:	03 d2                	add    %edx,%edx
4175bf:	03 ff                	add    %edi,%edi
4175c1:	0b f9                	or     %ecx,%edi
4175c3:	03 c2                	add    %edx,%eax
4175c5:	33 c9                	xor    %ecx,%ecx
4175c7:	89 13                	mov    %edx,(%ebx)
4175c9:	89 73 04             	mov    %esi,0x4(%ebx)
4175cc:	89 7b 08             	mov    %edi,0x8(%ebx)
4175cf:	89 45 10             	mov    %eax,0x10(%ebp)
4175d2:	3b c2                	cmp    %edx,%eax
4175d4:	72 05                	jb     0x4175db
4175d6:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
4175d9:	73 03                	jae    0x4175de
4175db:	33 c9                	xor    %ecx,%ecx
4175dd:	41                   	inc    %ecx
4175de:	89 03                	mov    %eax,(%ebx)
4175e0:	85 c9                	test   %ecx,%ecx
4175e2:	74 1e                	je     0x417602
4175e4:	8b c6                	mov    %esi,%eax
4175e6:	33 c9                	xor    %ecx,%ecx
4175e8:	8d 70 01             	lea    0x1(%eax),%esi
4175eb:	3b f0                	cmp    %eax,%esi
4175ed:	72 05                	jb     0x4175f4
4175ef:	83 fe 01             	cmp    $0x1,%esi
4175f2:	73 03                	jae    0x4175f7
4175f4:	33 c9                	xor    %ecx,%ecx
4175f6:	41                   	inc    %ecx
4175f7:	89 73 04             	mov    %esi,0x4(%ebx)
4175fa:	85 c9                	test   %ecx,%ecx
4175fc:	74 04                	je     0x417602
4175fe:	47                   	inc    %edi
4175ff:	89 7b 08             	mov    %edi,0x8(%ebx)
417602:	8b 55 e8             	mov    -0x18(%ebp),%edx
417605:	33 c0                	xor    %eax,%eax
417607:	8d 0c 16             	lea    (%esi,%edx,1),%ecx
41760a:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41760d:	3b ce                	cmp    %esi,%ecx
41760f:	72 04                	jb     0x417615
417611:	3b ca                	cmp    %edx,%ecx
417613:	73 03                	jae    0x417618
417615:	33 c0                	xor    %eax,%eax
417617:	40                   	inc    %eax
417618:	89 4b 04             	mov    %ecx,0x4(%ebx)
41761b:	85 c0                	test   %eax,%eax
41761d:	74 04                	je     0x417623
41761f:	47                   	inc    %edi
417620:	89 7b 08             	mov    %edi,0x8(%ebx)
417623:	8b 55 10             	mov    0x10(%ebp),%edx
417626:	03 7d ec             	add    -0x14(%ebp),%edi
417629:	8b 75 f4             	mov    -0xc(%ebp),%esi
41762c:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
417630:	8b c2                	mov    %edx,%eax
417632:	c1 e8 1f             	shr    $0x1f,%eax
417635:	03 f6                	add    %esi,%esi
417637:	0b f0                	or     %eax,%esi
417639:	c1 e9 1f             	shr    $0x1f,%ecx
41763c:	8d 04 3f             	lea    (%edi,%edi,1),%eax
41763f:	0b c1                	or     %ecx,%eax
417641:	8b 4d 08             	mov    0x8(%ebp),%ecx
417644:	03 d2                	add    %edx,%edx
417646:	89 13                	mov    %edx,(%ebx)
417648:	89 73 04             	mov    %esi,0x4(%ebx)
41764b:	89 43 08             	mov    %eax,0x8(%ebx)
41764e:	0f be 39             	movsbl (%ecx),%edi
417651:	89 75 f8             	mov    %esi,-0x8(%ebp)
417654:	8d 0c 3a             	lea    (%edx,%edi,1),%ecx
417657:	89 45 f4             	mov    %eax,-0xc(%ebp)
41765a:	89 7d e4             	mov    %edi,-0x1c(%ebp)
41765d:	89 4d 10             	mov    %ecx,0x10(%ebp)
417660:	3b ca                	cmp    %edx,%ecx
417662:	72 04                	jb     0x417668
417664:	3b cf                	cmp    %edi,%ecx
417666:	73 05                	jae    0x41766d
417668:	33 d2                	xor    %edx,%edx
41766a:	42                   	inc    %edx
41766b:	eb 03                	jmp    0x417670
41766d:	8b 55 f0             	mov    -0x10(%ebp),%edx
417670:	89 0b                	mov    %ecx,(%ebx)
417672:	85 d2                	test   %edx,%edx
417674:	74 27                	je     0x41769d
417676:	8d 4e 01             	lea    0x1(%esi),%ecx
417679:	33 d2                	xor    %edx,%edx
41767b:	3b ce                	cmp    %esi,%ecx
41767d:	72 05                	jb     0x417684
41767f:	83 f9 01             	cmp    $0x1,%ecx
417682:	73 03                	jae    0x417687
417684:	33 d2                	xor    %edx,%edx
417686:	42                   	inc    %edx
417687:	8b f1                	mov    %ecx,%esi
417689:	89 4b 04             	mov    %ecx,0x4(%ebx)
41768c:	8b 4d 10             	mov    0x10(%ebp),%ecx
41768f:	89 75 f8             	mov    %esi,-0x8(%ebp)
417692:	85 d2                	test   %edx,%edx
417694:	74 07                	je     0x41769d
417696:	40                   	inc    %eax
417697:	89 45 f4             	mov    %eax,-0xc(%ebp)
41769a:	89 43 08             	mov    %eax,0x8(%ebx)
41769d:	89 43 08             	mov    %eax,0x8(%ebx)
4176a0:	8b 45 0c             	mov    0xc(%ebp),%eax
4176a3:	48                   	dec    %eax
4176a4:	ff 45 08             	incl   0x8(%ebp)
4176a7:	89 73 04             	mov    %esi,0x4(%ebx)
4176aa:	89 45 0c             	mov    %eax,0xc(%ebp)
4176ad:	85 c0                	test   %eax,%eax
4176af:	0f 85 d2 fe ff ff    	jne    0x417587
4176b5:	b8 4e 40 00 00       	mov    $0x404e,%eax
4176ba:	33 d2                	xor    %edx,%edx
4176bc:	39 53 08             	cmp    %edx,0x8(%ebx)
4176bf:	75 2e                	jne    0x4176ef
4176c1:	8b 53 04             	mov    0x4(%ebx),%edx
4176c4:	8b 0b                	mov    (%ebx),%ecx
4176c6:	8b f2                	mov    %edx,%esi
4176c8:	8b c1                	mov    %ecx,%eax
4176ca:	c1 e8 10             	shr    $0x10,%eax
4176cd:	c1 e2 10             	shl    $0x10,%edx
4176d0:	0b d0                	or     %eax,%edx
4176d2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4176d5:	c1 ee 10             	shr    $0x10,%esi
4176d8:	c1 e1 10             	shl    $0x10,%ecx
4176db:	05 f0 ff 00 00       	add    $0xfff0,%eax
4176e0:	89 0b                	mov    %ecx,(%ebx)
4176e2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4176e5:	85 f6                	test   %esi,%esi
4176e7:	74 db                	je     0x4176c4
4176e9:	89 53 04             	mov    %edx,0x4(%ebx)
4176ec:	89 73 08             	mov    %esi,0x8(%ebx)
4176ef:	8b 53 08             	mov    0x8(%ebx),%edx
4176f2:	f7 c2 00 80 00 00    	test   $0x8000,%edx
4176f8:	75 34                	jne    0x41772e
4176fa:	8b 3b                	mov    (%ebx),%edi
4176fc:	8b 73 04             	mov    0x4(%ebx),%esi
4176ff:	8b c7                	mov    %edi,%eax
417701:	c1 e8 1f             	shr    $0x1f,%eax
417704:	8b ce                	mov    %esi,%ecx
417706:	03 f6                	add    %esi,%esi
417708:	0b f0                	or     %eax,%esi
41770a:	8b 45 fc             	mov    -0x4(%ebp),%eax
41770d:	c1 e9 1f             	shr    $0x1f,%ecx
417710:	03 d2                	add    %edx,%edx
417712:	0b d1                	or     %ecx,%edx
417714:	05 ff ff 00 00       	add    $0xffff,%eax
417719:	03 ff                	add    %edi,%edi
41771b:	89 45 fc             	mov    %eax,-0x4(%ebp)
41771e:	f7 c2 00 80 00 00    	test   $0x8000,%edx
417724:	74 d9                	je     0x4176ff
417726:	89 3b                	mov    %edi,(%ebx)
417728:	89 73 04             	mov    %esi,0x4(%ebx)
41772b:	89 53 08             	mov    %edx,0x8(%ebx)
41772e:	5f                   	pop    %edi
41772f:	5e                   	pop    %esi
417730:	66 89 43 0a          	mov    %ax,0xa(%ebx)
417734:	5b                   	pop    %ebx
417735:	c9                   	leave
417736:	c3                   	ret
417737:	55                   	push   %ebp
417738:	8b ec                	mov    %esp,%ebp
41773a:	66 8b 45 08          	mov    0x8(%ebp),%ax
41773e:	6a 30                	push   $0x30
417740:	59                   	pop    %ecx
417741:	66 3b c1             	cmp    %cx,%ax
417744:	0f 82 87 01 00 00    	jb     0x4178d1
41774a:	66 83 f8 3a          	cmp    $0x3a,%ax
41774e:	73 07                	jae    0x417757
417750:	0f b7 c0             	movzwl %ax,%eax
417753:	2b c1                	sub    %ecx,%eax
417755:	5d                   	pop    %ebp
417756:	c3                   	ret
417757:	ba 10 ff 00 00       	mov    $0xff10,%edx
41775c:	66 3b c2             	cmp    %dx,%ax
41775f:	0f 83 5e 01 00 00    	jae    0x4178c3
417765:	ba 60 06 00 00       	mov    $0x660,%edx
41776a:	66 3b c2             	cmp    %dx,%ax
41776d:	0f 82 5e 01 00 00    	jb     0x4178d1
417773:	8d 4a 0a             	lea    0xa(%edx),%ecx
417776:	66 3b c1             	cmp    %cx,%ax
417779:	73 07                	jae    0x417782
41777b:	0f b7 c0             	movzwl %ax,%eax
41777e:	2b c2                	sub    %edx,%eax
417780:	5d                   	pop    %ebp
417781:	c3                   	ret
417782:	ba f0 06 00 00       	mov    $0x6f0,%edx
417787:	66 3b c2             	cmp    %dx,%ax
41778a:	0f 82 41 01 00 00    	jb     0x4178d1
417790:	8d 4a 0a             	lea    0xa(%edx),%ecx
417793:	66 3b c1             	cmp    %cx,%ax
417796:	72 e3                	jb     0x41777b
417798:	ba 66 09 00 00       	mov    $0x966,%edx
41779d:	66 3b c2             	cmp    %dx,%ax
4177a0:	0f 82 2b 01 00 00    	jb     0x4178d1
4177a6:	8d 4a 0a             	lea    0xa(%edx),%ecx
4177a9:	66 3b c1             	cmp    %cx,%ax
4177ac:	72 cd                	jb     0x41777b
4177ae:	8d 51 76             	lea    0x76(%ecx),%edx
4177b1:	66 3b c2             	cmp    %dx,%ax
4177b4:	0f 82 17 01 00 00    	jb     0x4178d1
4177ba:	8d 4a 0a             	lea    0xa(%edx),%ecx
4177bd:	66 3b c1             	cmp    %cx,%ax
4177c0:	72 b9                	jb     0x41777b
4177c2:	8d 51 76             	lea    0x76(%ecx),%edx
4177c5:	66 3b c2             	cmp    %dx,%ax
4177c8:	0f 82 03 01 00 00    	jb     0x4178d1
4177ce:	8d 4a 0a             	lea    0xa(%edx),%ecx
4177d1:	66 3b c1             	cmp    %cx,%ax
4177d4:	72 a5                	jb     0x41777b
4177d6:	8d 51 76             	lea    0x76(%ecx),%edx
4177d9:	66 3b c2             	cmp    %dx,%ax
4177dc:	0f 82 ef 00 00 00    	jb     0x4178d1
4177e2:	8d 4a 0a             	lea    0xa(%edx),%ecx
4177e5:	66 3b c1             	cmp    %cx,%ax
4177e8:	72 91                	jb     0x41777b
4177ea:	8d 51 76             	lea    0x76(%ecx),%edx
4177ed:	66 3b c2             	cmp    %dx,%ax
4177f0:	0f 82 db 00 00 00    	jb     0x4178d1
4177f6:	8d 4a 0a             	lea    0xa(%edx),%ecx
4177f9:	66 3b c1             	cmp    %cx,%ax
4177fc:	0f 82 79 ff ff ff    	jb     0x41777b
417802:	ba 66 0c 00 00       	mov    $0xc66,%edx
417807:	66 3b c2             	cmp    %dx,%ax
41780a:	0f 82 c1 00 00 00    	jb     0x4178d1
417810:	8d 4a 0a             	lea    0xa(%edx),%ecx
417813:	66 3b c1             	cmp    %cx,%ax
417816:	0f 82 5f ff ff ff    	jb     0x41777b
41781c:	8d 51 76             	lea    0x76(%ecx),%edx
41781f:	66 3b c2             	cmp    %dx,%ax
417822:	0f 82 a9 00 00 00    	jb     0x4178d1
417828:	8d 4a 0a             	lea    0xa(%edx),%ecx
41782b:	66 3b c1             	cmp    %cx,%ax
41782e:	0f 82 47 ff ff ff    	jb     0x41777b
417834:	8d 51 76             	lea    0x76(%ecx),%edx
417837:	66 3b c2             	cmp    %dx,%ax
41783a:	0f 82 91 00 00 00    	jb     0x4178d1
417840:	8d 4a 0a             	lea    0xa(%edx),%ecx
417843:	66 3b c1             	cmp    %cx,%ax
417846:	0f 82 2f ff ff ff    	jb     0x41777b
41784c:	ba 50 0e 00 00       	mov    $0xe50,%edx
417851:	66 3b c2             	cmp    %dx,%ax
417854:	72 7b                	jb     0x4178d1
417856:	8d 4a 0a             	lea    0xa(%edx),%ecx
417859:	66 3b c1             	cmp    %cx,%ax
41785c:	0f 82 19 ff ff ff    	jb     0x41777b
417862:	8d 51 76             	lea    0x76(%ecx),%edx
417865:	66 3b c2             	cmp    %dx,%ax
417868:	72 67                	jb     0x4178d1
41786a:	8d 4a 0a             	lea    0xa(%edx),%ecx