4086b3:	e8 b8 dc ff ff       	call   0x406370
4086b8:	8b 75 f8             	mov    -0x8(%ebp),%esi
4086bb:	59                   	pop    %ecx
4086bc:	59                   	pop    %ecx
4086bd:	0f b7 53 08          	movzwl 0x8(%ebx),%edx
4086c1:	8b ca                	mov    %edx,%ecx
4086c3:	8d 04 31             	lea    (%ecx,%esi,1),%eax
4086c6:	3b c7                	cmp    %edi,%eax
4086c8:	76 04                	jbe    0x4086ce
4086ca:	32 c0                	xor    %al,%al
4086cc:	eb 27                	jmp    0x4086f5
4086ce:	8b c2                	mov    %edx,%eax
4086d0:	85 c9                	test   %ecx,%ecx
4086d2:	74 15                	je     0x4086e9
4086d4:	51                   	push   %ecx
4086d5:	ff 73 10             	push   0x10(%ebx)
4086d8:	2b fe                	sub    %esi,%edi
4086da:	8b ce                	mov    %esi,%ecx
4086dc:	8b d7                	mov    %edi,%edx
4086de:	e8 8d dc ff ff       	call   0x406370
4086e3:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
4086e7:	59                   	pop    %ecx
4086e8:	59                   	pop    %ecx
4086e9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4086ec:	0f b7 c0             	movzwl %ax,%eax
4086ef:	03 c6                	add    %esi,%eax
4086f1:	89 01                	mov    %eax,(%ecx)
4086f3:	b0 01                	mov    $0x1,%al
4086f5:	5f                   	pop    %edi
4086f6:	5e                   	pop    %esi
4086f7:	5b                   	pop    %ebx
4086f8:	c9                   	leave
4086f9:	c2 08 00             	ret    $0x8
4086fc:	8b ff                	mov    %edi,%edi
4086fe:	55                   	push   %ebp
4086ff:	8b ec                	mov    %esp,%ebp
408701:	51                   	push   %ecx
408702:	8b 45 08             	mov    0x8(%ebp),%eax
408705:	53                   	push   %ebx
408706:	56                   	push   %esi
408707:	8b f1                	mov    %ecx,%esi
408709:	8b 10                	mov    (%eax),%edx
40870b:	8a 46 02             	mov    0x2(%esi),%al
40870e:	3c 01                	cmp    $0x1,%al
408710:	75 22                	jne    0x408734
408712:	8d 5a 02             	lea    0x2(%edx),%ebx
408715:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
408718:	77 75                	ja     0x40878f
40871a:	6a 02                	push   $0x2
40871c:	52                   	push   %edx
40871d:	89 56 0c             	mov    %edx,0xc(%esi)
408720:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408723:	6a 02                	push   $0x2
408725:	5a                   	pop    %edx
408726:	e8 45 dc ff ff       	call   0x406370
40872b:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
40872f:	89 46 04             	mov    %eax,0x4(%esi)
408732:	eb 1d                	jmp    0x408751
408734:	3c 02                	cmp    $0x2,%al
408736:	75 1d                	jne    0x408755
408738:	8d 5a 04             	lea    0x4(%edx),%ebx
40873b:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
40873e:	77 4f                	ja     0x40878f
408740:	6a 04                	push   $0x4
408742:	52                   	push   %edx
408743:	89 56 0c             	mov    %edx,0xc(%esi)
408746:	8d 4e 04             	lea    0x4(%esi),%ecx
408749:	6a 04                	push   $0x4
40874b:	5a                   	pop    %edx
40874c:	e8 1f dc ff ff       	call   0x406370
408751:	59                   	pop    %ecx
408752:	8b d3                	mov    %ebx,%edx
408754:	59                   	pop    %ecx
408755:	0f b7 06             	movzwl (%esi),%eax
408758:	8d 5e 08             	lea    0x8(%esi),%ebx
40875b:	66 89 03             	mov    %ax,(%ebx)
40875e:	8b c8                	mov    %eax,%ecx
408760:	66 85 c0             	test   %ax,%ax
408763:	75 20                	jne    0x408785
408765:	8d 42 02             	lea    0x2(%edx),%eax
408768:	89 45 fc             	mov    %eax,-0x4(%ebp)
40876b:	3b 45 0c             	cmp    0xc(%ebp),%eax
40876e:	77 1f                	ja     0x40878f
408770:	6a 02                	push   $0x2
408772:	52                   	push   %edx
408773:	6a 02                	push   $0x2
408775:	5a                   	pop    %edx
408776:	8b cb                	mov    %ebx,%ecx
408778:	e8 f3 db ff ff       	call   0x406370
40877d:	8b 55 fc             	mov    -0x4(%ebp),%edx
408780:	59                   	pop    %ecx
408781:	59                   	pop    %ecx
408782:	0f b7 0b             	movzwl (%ebx),%ecx
408785:	0f b7 c1             	movzwl %cx,%eax
408788:	03 c2                	add    %edx,%eax
40878a:	3b 45 0c             	cmp    0xc(%ebp),%eax
40878d:	76 04                	jbe    0x408793
40878f:	32 c0                	xor    %al,%al
408791:	eb 0a                	jmp    0x40879d
408793:	8b 4d 08             	mov    0x8(%ebp),%ecx
408796:	89 56 10             	mov    %edx,0x10(%esi)
408799:	89 01                	mov    %eax,(%ecx)
40879b:	b0 01                	mov    $0x1,%al
40879d:	5e                   	pop    %esi
40879e:	5b                   	pop    %ebx
40879f:	c9                   	leave
4087a0:	c2 08 00             	ret    $0x8
4087a3:	8b ff                	mov    %edi,%edi
4087a5:	55                   	push   %ebp
4087a6:	8b ec                	mov    %esp,%ebp
4087a8:	66 8b 45 08          	mov    0x8(%ebp),%ax
4087ac:	8b d1                	mov    %ecx,%edx
4087ae:	8a 4d 18             	mov    0x18(%ebp),%cl
4087b1:	83 ec 14             	sub    $0x14,%esp
4087b4:	66 89 02             	mov    %ax,(%edx)
4087b7:	66 8b 45 0c          	mov    0xc(%ebp),%ax
4087bb:	66 89 42 02          	mov    %ax,0x2(%edx)
4087bf:	8a 45 10             	mov    0x10(%ebp),%al
4087c2:	88 42 04             	mov    %al,0x4(%edx)
4087c5:	66 8b 45 14          	mov    0x14(%ebp),%ax
4087c9:	53                   	push   %ebx
4087ca:	33 db                	xor    %ebx,%ebx
4087cc:	66 89 42 06          	mov    %ax,0x6(%edx)
4087d0:	88 4a 08             	mov    %cl,0x8(%edx)
4087d3:	66 85 c0             	test   %ax,%ax
4087d6:	74 20                	je     0x4087f8
4087d8:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
4087dc:	33 c0                	xor    %eax,%eax
4087de:	88 4d ee             	mov    %cl,-0x12(%ebp)
4087e1:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4087e4:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4087e7:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
4087eb:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4087ee:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4087f1:	e8 19 fe ff ff       	call   0x40860f
4087f6:	eb 02                	jmp    0x4087fa
4087f8:	8b c3                	mov    %ebx,%eax
4087fa:	89 42 0c             	mov    %eax,0xc(%edx)
4087fd:	8b c2                	mov    %edx,%eax
4087ff:	89 5a 10             	mov    %ebx,0x10(%edx)
408802:	89 5a 14             	mov    %ebx,0x14(%edx)
408805:	89 5a 18             	mov    %ebx,0x18(%edx)
408808:	89 5a 1c             	mov    %ebx,0x1c(%edx)
40880b:	88 5a 22             	mov    %bl,0x22(%edx)
40880e:	66 c7 42 20 00 00    	movw   $0x0,0x20(%edx)
408814:	5b                   	pop    %ebx
408815:	c9                   	leave
408816:	c2 14 00             	ret    $0x14
408819:	8b ff                	mov    %edi,%edi
40881b:	55                   	push   %ebp
40881c:	8b ec                	mov    %esp,%ebp
40881e:	83 ec 18             	sub    $0x18,%esp
408821:	53                   	push   %ebx
408822:	8b 5d 08             	mov    0x8(%ebp),%ebx
408825:	8d 41 10             	lea    0x10(%ecx),%eax
408828:	56                   	push   %esi
408829:	57                   	push   %edi
40882a:	8b f0                	mov    %eax,%esi
40882c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40882f:	8d 7d e8             	lea    -0x18(%ebp),%edi
408832:	8d 48 0c             	lea    0xc(%eax),%ecx
408835:	8b 11                	mov    (%ecx),%edx
408837:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408838:	89 55 fc             	mov    %edx,-0x4(%ebp)
40883b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40883c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40883d:	83 21 00             	andl   $0x0,(%ecx)
408840:	8d 73 10             	lea    0x10(%ebx),%esi
408843:	8b f8                	mov    %eax,%edi
408845:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408846:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408847:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408848:	8b 43 1c             	mov    0x1c(%ebx),%eax
40884b:	83 63 1c 00          	andl   $0x0,0x1c(%ebx)
40884f:	50                   	push   %eax
408850:	e8 cc 1a 00 00       	call   0x40a321
408855:	ff 75 fc             	push   -0x4(%ebp)
408858:	8b fb                	mov    %ebx,%edi
40885a:	8d 75 e8             	lea    -0x18(%ebp),%esi
40885d:	8d 4b 1c             	lea    0x1c(%ebx),%ecx
408860:	8d 7f 10             	lea    0x10(%edi),%edi
408863:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408864:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408865:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408866:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40886a:	e8 b2 1a 00 00       	call   0x40a321
40886f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
408872:	e8 ce 1a 00 00       	call   0x40a345
408877:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40887a:	8b 55 08             	mov    0x8(%ebp),%edx
40887d:	5f                   	pop    %edi
40887e:	5e                   	pop    %esi
40887f:	8a 4b 20             	mov    0x20(%ebx),%cl
408882:	8a 42 20             	mov    0x20(%edx),%al
408885:	88 43 20             	mov    %al,0x20(%ebx)
408888:	8a 42 21             	mov    0x21(%edx),%al
40888b:	88 4a 20             	mov    %cl,0x20(%edx)
40888e:	8a 4b 21             	mov    0x21(%ebx),%cl
408891:	88 43 21             	mov    %al,0x21(%ebx)
408894:	88 4a 21             	mov    %cl,0x21(%edx)
408897:	5b                   	pop    %ebx
408898:	c9                   	leave
408899:	c2 04 00             	ret    $0x4
40889c:	8b ff                	mov    %edi,%edi
40889e:	55                   	push   %ebp
40889f:	8b ec                	mov    %esp,%ebp
4088a1:	53                   	push   %ebx
4088a2:	56                   	push   %esi
4088a3:	57                   	push   %edi
4088a4:	8b 7d 10             	mov    0x10(%ebp),%edi
4088a7:	8b f1                	mov    %ecx,%esi
4088a9:	83 ff 0a             	cmp    $0xa,%edi
4088ac:	0f 82 c6 00 00 00    	jb     0x408978
4088b2:	8b 46 1c             	mov    0x1c(%esi),%eax
4088b5:	33 db                	xor    %ebx,%ebx
4088b7:	89 5e 1c             	mov    %ebx,0x1c(%esi)
4088ba:	85 c0                	test   %eax,%eax
4088bc:	74 0f                	je     0x4088cd
4088be:	50                   	push   %eax
4088bf:	53                   	push   %ebx
4088c0:	ff 15 7c 60 42 00    	call   *0x42607c
4088c6:	50                   	push   %eax
4088c7:	ff 15 a4 61 42 00    	call   *0x4261a4
4088cd:	8b 55 08             	mov    0x8(%ebp),%edx
4088d0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4088d3:	83 f9 0a             	cmp    $0xa,%ecx
4088d6:	88 5e 21             	mov    %bl,0x21(%esi)
4088d9:	1a db                	sbb    %bl,%bl
4088db:	89 56 10             	mov    %edx,0x10(%esi)
4088de:	fe c3                	inc    %bl
4088e0:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4088e3:	89 46 14             	mov    %eax,0x14(%esi)
4088e6:	8d 04 3a             	lea    (%edx,%edi,1),%eax
4088e9:	89 46 18             	mov    %eax,0x18(%esi)
4088ec:	83 f9 0a             	cmp    $0xa,%ecx
4088ef:	72 4b                	jb     0x40893c
4088f1:	33 c9                	xor    %ecx,%ecx
4088f3:	66 39 0a             	cmp    %cx,(%edx)
4088f6:	77 0b                	ja     0x408903
4088f8:	66 8b 42 02          	mov    0x2(%edx),%ax
4088fc:	66 3b 06             	cmp    (%esi),%ax
4088ff:	8a c1                	mov    %cl,%al
408901:	76 02                	jbe    0x408905
408903:	b0 01                	mov    $0x1,%al
408905:	88 46 21             	mov    %al,0x21(%esi)
408908:	66 39 0a             	cmp    %cx,(%edx)
40890b:	75 2d                	jne    0x40893a
40890d:	66 8b 42 02          	mov    0x2(%edx),%ax
408911:	66 3b 06             	cmp    (%esi),%ax
408914:	75 24                	jne    0x40893a
408916:	66 8b 42 04          	mov    0x4(%edx),%ax
40891a:	66 3b 46 02          	cmp    0x2(%esi),%ax
40891e:	75 1a                	jne    0x40893a
408920:	8a 42 08             	mov    0x8(%edx),%al
408923:	3a 46 04             	cmp    0x4(%esi),%al
408926:	75 12                	jne    0x40893a
408928:	66 8b 42 06          	mov    0x6(%edx),%ax
40892c:	66 3b 46 06          	cmp    0x6(%esi),%ax
408930:	75 08                	jne    0x40893a
408932:	8a 42 09             	mov    0x9(%edx),%al
408935:	3a 46 08             	cmp    0x8(%esi),%al
408938:	74 02                	je     0x40893c
40893a:	8a d9                	mov    %cl,%bl
40893c:	84 db                	test   %bl,%bl
40893e:	75 31                	jne    0x408971
408940:	33 c0                	xor    %eax,%eax
408942:	66 89 02             	mov    %ax,(%edx)
408945:	66 8b 06             	mov    (%esi),%ax
408948:	66 89 42 02          	mov    %ax,0x2(%edx)
40894c:	66 8b 46 02          	mov    0x2(%esi),%ax
408950:	66 89 42 04          	mov    %ax,0x4(%edx)
408954:	8a 46 04             	mov    0x4(%esi),%al
408957:	88 42 08             	mov    %al,0x8(%edx)
40895a:	66 8b 46 06          	mov    0x6(%esi),%ax
40895e:	66 89 42 06          	mov    %ax,0x6(%edx)
408962:	8a 46 08             	mov    0x8(%esi),%al
408965:	88 42 09             	mov    %al,0x9(%edx)
408968:	8b 46 10             	mov    0x10(%esi),%eax
40896b:	83 c0 0a             	add    $0xa,%eax
40896e:	89 46 14             	mov    %eax,0x14(%esi)
408971:	5f                   	pop    %edi
408972:	5e                   	pop    %esi
408973:	5b                   	pop    %ebx
408974:	5d                   	pop    %ebp
408975:	c2 0c 00             	ret    $0xc
408978:	8b 4d 04             	mov    0x4(%ebp),%ecx
40897b:	ba 88 0d 00 00       	mov    $0xd88,%edx
408980:	68 80 1c 40 00       	push   $0x401c80
408985:	e8 51 e6 ff ff       	call   0x406fdb
40898a:	cc                   	int3
40898b:	8b ff                	mov    %edi,%edi
40898d:	55                   	push   %ebp
40898e:	8b ec                	mov    %esp,%ebp
408990:	83 ec 44             	sub    $0x44,%esp
408993:	53                   	push   %ebx
408994:	56                   	push   %esi
408995:	57                   	push   %edi
408996:	8b f9                	mov    %ecx,%edi
408998:	33 db                	xor    %ebx,%ebx
40899a:	89 5d e8             	mov    %ebx,-0x18(%ebp)
40899d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4089a0:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4089a3:	8b 47 10             	mov    0x10(%edi),%eax
4089a6:	83 c0 0a             	add    $0xa,%eax
4089a9:	89 5d c0             	mov    %ebx,-0x40(%ebp)
4089ac:	89 45 fc             	mov    %eax,-0x4(%ebp)
4089af:	66 8b 47 02          	mov    0x2(%edi),%ax
4089b3:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
4089b7:	8a 47 04             	mov    0x4(%edi),%al
4089ba:	88 45 e6             	mov    %al,-0x1a(%ebp)
4089bd:	33 c0                	xor    %eax,%eax
4089bf:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
4089c3:	66 8b 47 06          	mov    0x6(%edi),%ax
4089c7:	66 89 45 bc          	mov    %ax,-0x44(%ebp)
4089cb:	8a 47 08             	mov    0x8(%edi),%al
4089ce:	88 45 be             	mov    %al,-0x42(%ebp)
4089d1:	33 c0                	xor    %eax,%eax
4089d3:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
4089d7:	89 5d c8             	mov    %ebx,-0x38(%ebp)
4089da:	89 5d cc             	mov    %ebx,-0x34(%ebp)
4089dd:	eb 78                	jmp    0x408a57
4089df:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4089e2:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
4089e5:	76 70                	jbe    0x408a57
4089e7:	ff 77 14             	push   0x14(%edi)
4089ea:	8d 45 fc             	lea    -0x4(%ebp),%eax
4089ed:	50                   	push   %eax
4089ee:	8d 4d bc             	lea    -0x44(%ebp),%ecx
4089f1:	e8 06 fd ff ff       	call   0x4086fc
4089f6:	84 c0                	test   %al,%al
4089f8:	74 5d                	je     0x408a57
4089fa:	8b 45 c0             	mov    -0x40(%ebp),%eax
4089fd:	89 45 e0             	mov    %eax,-0x20(%ebp)
408a00:	0f b7 45 c4          	movzwl -0x3c(%ebp),%eax
408a04:	89 45 dc             	mov    %eax,-0x24(%ebp)
408a07:	8b 45 cc             	mov    -0x34(%ebp),%eax
408a0a:	89 45 d8             	mov    %eax,-0x28(%ebp)
408a0d:	0f b7 45 ec          	movzwl -0x14(%ebp),%eax
408a11:	89 45 d4             	mov    %eax,-0x2c(%ebp)
408a14:	8b 45 f4             	mov    -0xc(%ebp),%eax
408a17:	89 45 d0             	mov    %eax,-0x30(%ebp)
408a1a:	8b 45 48             	mov    0x48(%ebp),%eax
408a1d:	85 c0                	test   %eax,%eax
408a1f:	74 70                	je     0x408a91
408a21:	8b 00                	mov    (%eax),%eax
408a23:	8b 70 10             	mov    0x10(%eax),%esi
408a26:	8d 45 e0             	lea    -0x20(%ebp),%eax
408a29:	50                   	push   %eax
408a2a:	8d 45 dc             	lea    -0x24(%ebp),%eax
408a2d:	8b ce                	mov    %esi,%ecx