40859a:	8b 45 28             	mov    0x28(%ebp),%eax
40859d:	56                   	push   %esi
40859e:	53                   	push   %ebx
40859f:	50                   	push   %eax
4085a0:	e9 cc f8 ff ff       	jmp    0x407e71
4085a5:	83 f9 6f             	cmp    $0x6f,%ecx
4085a8:	0f 84 dd fe ff ff    	je     0x40848b
4085ae:	83 f9 70             	cmp    $0x70,%ecx
4085b1:	0f 84 d4 fe ff ff    	je     0x40848b
4085b7:	83 f9 71             	cmp    $0x71,%ecx
4085ba:	0f 84 cb fe ff ff    	je     0x40848b
4085c0:	83 f9 72             	cmp    $0x72,%ecx
4085c3:	0f 84 c2 fe ff ff    	je     0x40848b
4085c9:	83 f9 73             	cmp    $0x73,%ecx
4085cc:	0f 84 b9 fe ff ff    	je     0x40848b
4085d2:	83 f9 74             	cmp    $0x74,%ecx
4085d5:	0f 84 b0 fe ff ff    	je     0x40848b
4085db:	83 f9 7d             	cmp    $0x7d,%ecx
4085de:	0f 82 57 82 07 00    	jb     0x48083b
4085e4:	b8 87 00 00 00       	mov    $0x87,%eax
4085e9:	66 3b c8             	cmp    %ax,%cx
4085ec:	0f 87 49 82 07 00    	ja     0x48083b
4085f2:	8b f2                	mov    %edx,%esi
4085f4:	2b f3                	sub    %ebx,%esi
4085f6:	33 db                	xor    %ebx,%ebx
4085f8:	d1 fe                	sar    $1,%esi
4085fa:	89 75 ec             	mov    %esi,-0x14(%ebp)
4085fd:	89 5d e8             	mov    %ebx,-0x18(%ebp)
408600:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
408603:	66 3b c8             	cmp    %ax,%cx
408606:	0f 84 01 7d 07 00    	je     0x48030d
40860c:	b8 81 00 00 00       	mov    $0x81,%eax
408611:	66 3b c8             	cmp    %ax,%cx
408614:	8b 45 ac             	mov    -0x54(%ebp),%eax
408617:	0f 82 0c 7d 07 00    	jb     0x480329
40861d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
408620:	85 c0                	test   %eax,%eax
408622:	0f 85 7f 7d 07 00    	jne    0x4803a7
408628:	ff 75 c0             	push   -0x40(%ebp)
40862b:	dd d8                	fstp   %st(0)
40862d:	8b 7d e0             	mov    -0x20(%ebp),%edi
408630:	ff 75 28             	push   0x28(%ebp)
408633:	83 f9 01             	cmp    $0x1,%ecx
408636:	ff 75 dc             	push   -0x24(%ebp)
408639:	66 89 02             	mov    %ax,(%edx)
40863c:	8b cf                	mov    %edi,%ecx
40863e:	0f 8f 16 7d 07 00    	jg     0x48035a
408644:	8d 50 01             	lea    0x1(%eax),%edx
408647:	e8 ad 5d 01 00       	call   0x41e3f9
40864c:	8b 55 ec             	mov    -0x14(%ebp),%edx
40864f:	83 c4 0c             	add    $0xc,%esp
408652:	8d 04 12             	lea    (%edx,%edx,1),%eax
408655:	50                   	push   %eax
408656:	8d 77 02             	lea    0x2(%edi),%esi
408659:	57                   	push   %edi
40865a:	56                   	push   %esi
40865b:	e8 20 d9 01 00       	call   0x425f80
408660:	8b 55 f8             	mov    -0x8(%ebp),%edx
408663:	83 c2 02             	add    $0x2,%edx
408666:	83 c4 0c             	add    $0xc,%esp
408669:	89 55 f8             	mov    %edx,-0x8(%ebp)
40866c:	39 5d c4             	cmp    %ebx,-0x3c(%ebp)
40866f:	0f 84 d5 7c 07 00    	je     0x48034a
408675:	8b 45 f0             	mov    -0x10(%ebp),%eax
408678:	8b cf                	mov    %edi,%ecx
40867a:	05 92 00 00 00       	add    $0x92,%eax
40867f:	89 75 e0             	mov    %esi,-0x20(%ebp)
408682:	8b 75 ec             	mov    -0x14(%ebp),%esi
408685:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408688:	66 89 07             	mov    %ax,(%edi)
40868b:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40868e:	8b 7d fc             	mov    -0x4(%ebp),%edi
408691:	48                   	dec    %eax
408692:	89 45 c4             	mov    %eax,-0x3c(%ebp)
408695:	85 c0                	test   %eax,%eax
408697:	0f 88 4a 80 07 00    	js     0x4806e7
40869d:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
4086a1:	74 08                	je     0x4086ab
4086a3:	85 c0                	test   %eax,%eax
4086a5:	0f 8f 84 7e 07 00    	jg     0x48052f
4086ab:	8d 58 ff             	lea    -0x1(%eax),%ebx
4086ae:	85 db                	test   %ebx,%ebx
4086b0:	0f 89 d0 7e 07 00    	jns    0x480586
4086b6:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4086b9:	85 db                	test   %ebx,%ebx
4086bb:	0f 84 46 fe ff ff    	je     0x408507
4086c1:	e9 e6 7f 07 00       	jmp    0x4806ac
4086c6:	66 83 7f 02 45       	cmpw   $0x45,0x2(%edi)
4086cb:	8d 4f 02             	lea    0x2(%edi),%ecx
4086ce:	0f 84 b0 00 00 00    	je     0x408784
4086d4:	6a 03                	push   $0x3
4086d6:	ba d8 26 4b 00       	mov    $0x4b26d8,%edx
4086db:	e8 13 02 00 00       	call   0x4088f3
4086e0:	83 c4 04             	add    $0x4,%esp
4086e3:	85 c0                	test   %eax,%eax
4086e5:	0f 85 bd f6 ff ff    	jne    0x407da8
4086eb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4086ee:	83 c7 06             	add    $0x6,%edi
4086f1:	e9 8a f6 ff ff       	jmp    0x407d80
4086f6:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4086f9:	8b 7d 28             	mov    0x28(%ebp),%edi
4086fc:	6a 01                	push   $0x1
4086fe:	53                   	push   %ebx
4086ff:	ff 77 40             	push   0x40(%edi)
408702:	8d 95 54 ff ff ff    	lea    -0xac(%ebp),%edx
408708:	ff 75 0c             	push   0xc(%ebp)
40870b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40870e:	e8 5b 07 00 00       	call   0x408e6e
408713:	8b f0                	mov    %eax,%esi
408715:	8b 45 0c             	mov    0xc(%ebp),%eax
408718:	83 c4 10             	add    $0x10,%esp
40871b:	83 38 00             	cmpl   $0x0,(%eax)
40871e:	0f 85 c8 00 00 00    	jne    0x4087ec
408724:	85 f6                	test   %esi,%esi
408726:	0f 85 32 74 07 00    	jne    0x47fb5e
40872c:	8b 9d 54 ff ff ff    	mov    -0xac(%ebp),%ebx
408732:	8b 7d fc             	mov    -0x4(%ebp),%edi
408735:	e9 ec f6 ff ff       	jmp    0x407e26
40873a:	85 c0                	test   %eax,%eax
40873c:	0f 89 18 fd ff ff    	jns    0x40845a
408742:	8b 85 14 ff ff ff    	mov    -0xec(%ebp),%eax
408748:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
40874e:	8b c1                	mov    %ecx,%eax
408750:	0b 45 bc             	or     -0x44(%ebp),%eax
408753:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
408759:	e9 f4 fc ff ff       	jmp    0x408452
40875e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
408761:	e9 d9 f0 ff ff       	jmp    0x40783f
408766:	b8 01 00 00 00       	mov    $0x1,%eax
40876b:	e9 dd f0 ff ff       	jmp    0x40784d
408770:	8b d0                	mov    %eax,%edx
408772:	89 55 f8             	mov    %edx,-0x8(%ebp)
408775:	e9 5b f1 ff ff       	jmp    0x4078d5
40877a:	b8 0d 00 00 00       	mov    $0xd,%eax
40877f:	e9 60 fc ff ff       	jmp    0x4083e4
408784:	8b f9                	mov    %ecx,%edi
408786:	e9 f5 f5 ff ff       	jmp    0x407d80
40878b:	b8 01 00 00 00       	mov    $0x1,%eax
408790:	e9 e1 f5 ff ff       	jmp    0x407d76
408795:	8b f8                	mov    %eax,%edi
408797:	89 7d fc             	mov    %edi,-0x4(%ebp)
40879a:	e9 bb f6 ff ff       	jmp    0x407e5a
40879f:	b8 01 00 00 00       	mov    $0x1,%eax
4087a4:	e9 20 f7 ff ff       	jmp    0x407ec9
4087a9:	b8 6f 00 00 00       	mov    $0x6f,%eax
4087ae:	e9 5a f7 ff ff       	jmp    0x407f0d
4087b3:	33 c9                	xor    %ecx,%ecx
4087b5:	e9 7a 79 07 00       	jmp    0x480134
4087ba:	8b d3                	mov    %ebx,%edx
4087bc:	89 55 f8             	mov    %edx,-0x8(%ebp)
4087bf:	e9 4e fa ff ff       	jmp    0x408212
4087c4:	be 01 00 00 00       	mov    $0x1,%esi
4087c9:	e9 b7 f2 ff ff       	jmp    0x407a85
4087ce:	b8 01 00 00 00       	mov    $0x1,%eax
4087d3:	e9 ba f4 ff ff       	jmp    0x407c92
4087d8:	ba 01 00 00 00       	mov    $0x1,%edx
4087dd:	e9 da fa ff ff       	jmp    0x4082bc
4087e2:	b9 01 00 00 00       	mov    $0x1,%ecx
4087e7:	e9 d2 fa ff ff       	jmp    0x4082be
4087ec:	8b 7d fc             	mov    -0x4(%ebp),%edi
4087ef:	e9 2c 9b 07 00       	jmp    0x482320
4087f4:	09 f8                	or     %edi,%eax
4087f6:	47                   	inc    %edi
4087f7:	00 d9                	add    %bl,%cl
4087f9:	79 40                	jns    0x40883b
4087fb:	00 b4 80 40 00 80 01 	add    %dh,0x1800040(%eax,%eax,4)
408802:	48                   	dec    %eax
408803:	00 a8 83 40 00 ee    	add    %ch,-0x11ffbf7d(%eax)
408809:	84 40 00             	test   %al,0x0(%eax)
40880c:	19 7d 40             	sbb    %edi,0x40(%ebp)
40880f:	00 a3 7f 40 00 34    	add    %ah,0x3400407f(%ebx)
408815:	f8                   	clc
408816:	47                   	inc    %edi
408817:	00 bf f7 47 00 46    	add    %bh,0x460047f7(%edi)
40881d:	01 48 00             	add    %ecx,0x0(%eax)
408820:	53                   	push   %ebx
408821:	7a 40                	jp     0x408863
408823:	00 00                	add    %al,(%eax)
408825:	0b 0b                	or     (%ebx),%ecx
408827:	0b 0b                	or     (%ebx),%ecx
408829:	01 02                	add    %eax,(%edx)
40882b:	03 0b                	add    (%ebx),%ecx
40882d:	0b 04 0b             	or     (%ebx,%ecx,1),%eax
408830:	0b 0b                	or     (%ebx),%ecx
408832:	0b 0b                	or     (%ebx),%ecx
408834:	0b 0b                	or     (%ebx),%ecx
408836:	0b 0b                	or     (%ebx),%ecx
408838:	0b 0b                	or     (%ebx),%ecx
40883a:	0b 0b                	or     (%ebx),%ecx
40883c:	0b 0b                	or     (%ebx),%ecx
40883e:	0b 05 0b 0b 0b 0b    	or     0xb0b0b0b,%eax
408844:	0b 0b                	or     (%ebx),%ecx
408846:	0b 0b                	or     (%ebx),%ecx
408848:	0b 0b                	or     (%ebx),%ecx
40884a:	0b 0b                	or     (%ebx),%ecx
40884c:	0b 0b                	or     (%ebx),%ecx
40884e:	0b 0b                	or     (%ebx),%ecx
408850:	0b 0b                	or     (%ebx),%ecx
408852:	0b 0b                	or     (%ebx),%ecx
408854:	0b 0b                	or     (%ebx),%ecx
408856:	0b 0b                	or     (%ebx),%ecx
408858:	0b 0b                	or     (%ebx),%ecx
40885a:	0b 06                	or     (%esi),%eax
40885c:	07                   	pop    %es
40885d:	08 09                	or     %cl,(%ecx)
40885f:	0b 0b                	or     (%ebx),%ecx
408861:	0b 0b                	or     (%ebx),%ecx
408863:	0b 0b                	or     (%ebx),%ecx
408865:	0b 0b                	or     (%ebx),%ecx
408867:	0b 0b                	or     (%ebx),%ecx
408869:	0b 0b                	or     (%ebx),%ecx
40886b:	0b 0b                	or     (%ebx),%ecx
40886d:	0b 0b                	or     (%ebx),%ecx
40886f:	0b 0b                	or     (%ebx),%ecx
408871:	0b 0b                	or     (%ebx),%ecx
408873:	0b 0b                	or     (%ebx),%ecx
408875:	0b 0b                	or     (%ebx),%ecx
408877:	0b 0b                	or     (%ebx),%ecx
408879:	0b 0b                	or     (%ebx),%ecx
40887b:	0a 01                	or     (%ecx),%al
40887d:	55                   	push   %ebp
40887e:	8b ec                	mov    %esp,%ebp
408880:	83 ec 10             	sub    $0x10,%esp
408883:	53                   	push   %ebx
408884:	8b 5d 08             	mov    0x8(%ebp),%ebx
408887:	56                   	push   %esi
408888:	8b 75 10             	mov    0x10(%ebp),%esi
40888b:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40888e:	33 c9                	xor    %ecx,%ecx
408890:	57                   	push   %edi
408891:	8b 7d 14             	mov    0x14(%ebp),%edi
408894:	89 55 f8             	mov    %edx,-0x8(%ebp)
408897:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40889a:	f6 c3 01             	test   $0x1,%bl
40889d:	0f 85 3d 5e 07 00    	jne    0x47e6e0
4088a3:	81 e3 00 08 00 00    	and    $0x800,%ebx
4088a9:	74 3b                	je     0x4088e6
4088ab:	81 ff 00 01 00 00    	cmp    $0x100,%edi
4088b1:	0f 83 ff 5e 07 00    	jae    0x47e7b6
4088b7:	3b f7                	cmp    %edi,%esi
4088b9:	77 23                	ja     0x4088de
4088bb:	8b c7                	mov    %edi,%eax
4088bd:	2b c6                	sub    %esi,%eax
4088bf:	41                   	inc    %ecx
4088c0:	03 c8                	add    %eax,%ecx
4088c2:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4088c5:	8b ce                	mov    %esi,%ecx
4088c7:	83 e1 07             	and    $0x7,%ecx
4088ca:	b0 01                	mov    $0x1,%al
4088cc:	d2 e0                	shl    %cl,%al
4088ce:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4088d1:	8b d6                	mov    %esi,%edx
4088d3:	c1 ea 03             	shr    $0x3,%edx
4088d6:	08 04 0a             	or     %al,(%edx,%ecx,1)
4088d9:	46                   	inc    %esi
4088da:	3b f7                	cmp    %edi,%esi
4088dc:	76 e7                	jbe    0x4088c5
4088de:	8b 45 fc             	mov    -0x4(%ebp),%eax
4088e1:	5f                   	pop    %edi
4088e2:	5e                   	pop    %esi
4088e3:	5b                   	pop    %ebx
4088e4:	c9                   	leave
4088e5:	c3                   	ret
4088e6:	b8 ff ff 00 00       	mov    $0xffff,%eax
4088eb:	3b f8                	cmp    %eax,%edi
4088ed:	76 bc                	jbe    0x4088ab
4088ef:	8b f8                	mov    %eax,%edi
4088f1:	eb b8                	jmp    0x4088ab
4088f3:	55                   	push   %ebp
4088f4:	8b ec                	mov    %esp,%ebp
4088f6:	56                   	push   %esi
4088f7:	8b 75 08             	mov    0x8(%ebp),%esi
4088fa:	57                   	push   %edi
4088fb:	85 f6                	test   %esi,%esi
4088fd:	74 1f                	je     0x40891e
4088ff:	0f b7 39             	movzwl (%ecx),%edi
408902:	0f b6 02             	movzbl (%edx),%eax
408905:	4e                   	dec    %esi
408906:	42                   	inc    %edx
408907:	8d 49 02             	lea    0x2(%ecx),%ecx
40890a:	66 3b c7             	cmp    %di,%ax
40890d:	74 ec                	je     0x4088fb
40890f:	1b c0                	sbb    %eax,%eax
408911:	f7 d8                	neg    %eax
408913:	8d 04 45 ff ff ff ff 	lea    -0x1(,%eax,2),%eax
40891a:	5f                   	pop    %edi
40891b:	5e                   	pop    %esi
40891c:	5d                   	pop    %ebp
40891d:	c3                   	ret
40891e:	33 c0                	xor    %eax,%eax
408920:	eb f8                	jmp    0x40891a
408922:	55                   	push   %ebp
408923:	8b ec                	mov    %esp,%ebp
408925:	83 ec 10             	sub    $0x10,%esp
408928:	0f b7 01             	movzwl (%ecx),%eax
40892b:	53                   	push   %ebx
40892c:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
408933:	56                   	push   %esi
408934:	57                   	push   %edi
408935:	8b fa                	mov    %edx,%edi
408937:	33 d2                	xor    %edx,%edx
408939:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
40893c:	42                   	inc    %edx
40893d:	89 7d fc             	mov    %edi,-0x4(%ebp)
408940:	e8 cf 01 00 00       	call   0x408b14
408945:	8b f0                	mov    %eax,%esi
408947:	3b f7                	cmp    %edi,%esi
408949:	0f 83 ff 00 00 00    	jae    0x408a4e
40894f:	6a 77                	push   $0x77
408951:	5b                   	pop    %ebx
408952:	0f b7 3e             	movzwl (%esi),%edi
408955:	6a 10                	push   $0x10
408957:	33 d2                	xor    %edx,%edx
408959:	59                   	pop    %ecx
40895a:	83 ff 7d             	cmp    $0x7d,%edi
40895d:	0f 84 8b 9c 07 00    	je     0x4825ee
408963:	83 ff 75             	cmp    $0x75,%edi
408966:	0f 84 9a 9c 07 00    	je     0x482606
40896c:	b8 92 00 00 00       	mov    $0x92,%eax
408971:	66 3b f8             	cmp    %ax,%di
408974:	0f 84 78 9e 07 00    	je     0x4827f2
40897a:	40                   	inc    %eax
40897b:	66 3b f8             	cmp    %ax,%di
40897e:	0f 84 6e 9e 07 00    	je     0x4827f2
408984:	b8 a1 00 00 00       	mov    $0xa1,%eax
408989:	66 3b f8             	cmp    %ax,%di
40898c:	0f 84 60 9e 07 00    	je     0x4827f2
408992:	83 c0 f3             	add    $0xfffffff3,%eax
408995:	66 3b f8             	cmp    %ax,%di
408998:	0f 84 54 9e 07 00    	je     0x4827f2
40899e:	8d 41 78             	lea    0x78(%ecx),%eax
4089a1:	66 3b f8             	cmp    %ax,%di
4089a4:	0f 84 37 9e 07 00    	je     0x4827e1
4089aa:	40                   	inc    %eax
4089ab:	66 3b f8             	cmp    %ax,%di
4089ae:	0f 84 2d 9e 07 00    	je     0x4827e1
4089b4:	8d 41 7a             	lea    0x7a(%ecx),%eax
4089b7:	66 3b f8             	cmp    %ax,%di
4089ba:	0f 84 21 9e 07 00    	je     0x4827e1
4089c0:	40                   	inc    %eax
4089c1:	66 3b f8             	cmp    %ax,%di
4089c4:	0f 84 17 9e 07 00    	je     0x4827e1
4089ca:	8d 41 73             	lea    0x73(%ecx),%eax
4089cd:	66 3b f8             	cmp    %ax,%di
4089d0:	0f 84 ae 9d 07 00    	je     0x482784
4089d6:	40                   	inc    %eax
4089d7:	66 3b f8             	cmp    %ax,%di
4089da:	0f 84 a4 9d 07 00    	je     0x482784
4089e0:	8d 41 75             	lea    0x75(%ecx),%eax
4089e3:	66 3b f8             	cmp    %ax,%di