40878b:	59                   	pop    %ecx
40878c:	59                   	pop    %ecx
40878d:	5d                   	pop    %ebp
40878e:	c3                   	ret
40878f:	55                   	push   %ebp
408790:	8b ec                	mov    %esp,%ebp
408792:	83 3d 74 27 42 00 00 	cmpl   $0x0,0x422774
408799:	75 11                	jne    0x4087ac
40879b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40879e:	a1 d8 0f 42 00       	mov    0x420fd8,%eax
4087a3:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4087a7:	83 e0 01             	and    $0x1,%eax
4087aa:	5d                   	pop    %ebp
4087ab:	c3                   	ret
4087ac:	6a 00                	push   $0x0
4087ae:	ff 75 08             	push   0x8(%ebp)
4087b1:	e8 33 ff ff ff       	call   0x4086e9
4087b6:	59                   	pop    %ecx
4087b7:	59                   	pop    %ecx
4087b8:	5d                   	pop    %ebp
4087b9:	c3                   	ret
4087ba:	55                   	push   %ebp
4087bb:	8b ec                	mov    %esp,%ebp
4087bd:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4087c1:	75 04                	jne    0x4087c7
4087c3:	33 c0                	xor    %eax,%eax
4087c5:	5d                   	pop    %ebp
4087c6:	c3                   	ret
4087c7:	53                   	push   %ebx
4087c8:	57                   	push   %edi
4087c9:	ff 75 08             	push   0x8(%ebp)
4087cc:	e8 d2 04 00 00       	call   0x408ca3
4087d1:	8d 78 01             	lea    0x1(%eax),%edi
4087d4:	6a 02                	push   $0x2
4087d6:	57                   	push   %edi
4087d7:	e8 be 72 00 00       	call   0x40fa9a
4087dc:	8b d8                	mov    %eax,%ebx
4087de:	83 c4 0c             	add    $0xc,%esp
4087e1:	85 db                	test   %ebx,%ebx
4087e3:	74 15                	je     0x4087fa
4087e5:	ff 75 08             	push   0x8(%ebp)
4087e8:	57                   	push   %edi
4087e9:	53                   	push   %ebx
4087ea:	e8 e9 72 00 00       	call   0x40fad8
4087ef:	83 c4 0c             	add    $0xc,%esp
4087f2:	85 c0                	test   %eax,%eax
4087f4:	75 0a                	jne    0x408800
4087f6:	8b c3                	mov    %ebx,%eax
4087f8:	eb 02                	jmp    0x4087fc
4087fa:	33 c0                	xor    %eax,%eax
4087fc:	5f                   	pop    %edi
4087fd:	5b                   	pop    %ebx
4087fe:	5d                   	pop    %ebp
4087ff:	c3                   	ret
408800:	33 c0                	xor    %eax,%eax
408802:	50                   	push   %eax
408803:	50                   	push   %eax
408804:	50                   	push   %eax
408805:	50                   	push   %eax
408806:	50                   	push   %eax
408807:	e8 f9 2d 00 00       	call   0x40b605
40880c:	cc                   	int3
40880d:	55                   	push   %ebp
40880e:	8b ec                	mov    %esp,%ebp
408810:	51                   	push   %ecx
408811:	51                   	push   %ecx
408812:	a1 90 08 42 00       	mov    0x420890,%eax
408817:	33 c5                	xor    %ebp,%eax
408819:	89 45 fc             	mov    %eax,-0x4(%ebp)
40881c:	53                   	push   %ebx
40881d:	56                   	push   %esi
40881e:	8b 75 18             	mov    0x18(%ebp),%esi
408821:	57                   	push   %edi
408822:	85 f6                	test   %esi,%esi
408824:	7e 21                	jle    0x408847
408826:	8b 45 14             	mov    0x14(%ebp),%eax
408829:	8b ce                	mov    %esi,%ecx
40882b:	49                   	dec    %ecx
40882c:	80 38 00             	cmpb   $0x0,(%eax)
40882f:	74 08                	je     0x408839
408831:	40                   	inc    %eax
408832:	85 c9                	test   %ecx,%ecx
408834:	75 f5                	jne    0x40882b
408836:	83 c9 ff             	or     $0xffffffff,%ecx
408839:	8b c6                	mov    %esi,%eax
40883b:	2b c1                	sub    %ecx,%eax
40883d:	48                   	dec    %eax
40883e:	3b c6                	cmp    %esi,%eax
408840:	8d 70 01             	lea    0x1(%eax),%esi
408843:	7c 02                	jl     0x408847
408845:	8b f0                	mov    %eax,%esi
408847:	8b 4d 24             	mov    0x24(%ebp),%ecx
40884a:	33 ff                	xor    %edi,%edi
40884c:	85 c9                	test   %ecx,%ecx
40884e:	75 0d                	jne    0x40885d
408850:	8b 45 08             	mov    0x8(%ebp),%eax
408853:	8b 00                	mov    (%eax),%eax
408855:	8b 40 04             	mov    0x4(%eax),%eax
408858:	89 45 24             	mov    %eax,0x24(%ebp)
40885b:	8b c8                	mov    %eax,%ecx
40885d:	33 c0                	xor    %eax,%eax
40885f:	39 45 28             	cmp    %eax,0x28(%ebp)
408862:	6a 00                	push   $0x0
408864:	0f 95 c0             	setne  %al
408867:	6a 00                	push   $0x0
408869:	56                   	push   %esi
40886a:	ff 75 14             	push   0x14(%ebp)
40886d:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
408874:	50                   	push   %eax
408875:	51                   	push   %ecx
408876:	ff 15 74 90 41 00    	call   *0x419074
40887c:	8b c8                	mov    %eax,%ecx
40887e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408881:	85 c9                	test   %ecx,%ecx
408883:	75 07                	jne    0x40888c
408885:	33 c0                	xor    %eax,%eax
408887:	e9 58 01 00 00       	jmp    0x4089e4
40888c:	7e 4b                	jle    0x4088d9
40888e:	6a e0                	push   $0xffffffe0
408890:	33 d2                	xor    %edx,%edx
408892:	58                   	pop    %eax
408893:	f7 f1                	div    %ecx
408895:	83 f8 02             	cmp    $0x2,%eax
408898:	72 3f                	jb     0x4088d9
40889a:	8d 0c 4d 08 00 00 00 	lea    0x8(,%ecx,2),%ecx
4088a1:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
4088a7:	77 15                	ja     0x4088be
4088a9:	8b c1                	mov    %ecx,%eax
4088ab:	e8 00 73 00 00       	call   0x40fbb0
4088b0:	8b dc                	mov    %esp,%ebx
4088b2:	85 db                	test   %ebx,%ebx
4088b4:	74 1e                	je     0x4088d4
4088b6:	c7 03 cc cc 00 00    	movl   $0xcccc,(%ebx)
4088bc:	eb 13                	jmp    0x4088d1
4088be:	51                   	push   %ecx
4088bf:	e8 79 f9 ff ff       	call   0x40823d
4088c4:	8b d8                	mov    %eax,%ebx
4088c6:	59                   	pop    %ecx
4088c7:	85 db                	test   %ebx,%ebx
4088c9:	74 09                	je     0x4088d4
4088cb:	c7 03 dd dd 00 00    	movl   $0xdddd,(%ebx)
4088d1:	83 c3 08             	add    $0x8,%ebx
4088d4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4088d7:	eb 02                	jmp    0x4088db
4088d9:	33 db                	xor    %ebx,%ebx
4088db:	85 db                	test   %ebx,%ebx
4088dd:	74 a6                	je     0x408885
4088df:	51                   	push   %ecx
4088e0:	53                   	push   %ebx
4088e1:	56                   	push   %esi
4088e2:	ff 75 14             	push   0x14(%ebp)
4088e5:	6a 01                	push   $0x1
4088e7:	ff 75 24             	push   0x24(%ebp)
4088ea:	ff 15 74 90 41 00    	call   *0x419074
4088f0:	85 c0                	test   %eax,%eax
4088f2:	0f 84 e3 00 00 00    	je     0x4089db
4088f8:	8b 75 f8             	mov    -0x8(%ebp),%esi
4088fb:	6a 00                	push   $0x0
4088fd:	6a 00                	push   $0x0
4088ff:	56                   	push   %esi
408900:	53                   	push   %ebx
408901:	ff 75 10             	push   0x10(%ebp)
408904:	ff 75 0c             	push   0xc(%ebp)
408907:	e8 74 72 00 00       	call   0x40fb80
40890c:	8b f8                	mov    %eax,%edi
40890e:	83 c4 18             	add    $0x18,%esp
408911:	85 ff                	test   %edi,%edi
408913:	0f 84 c2 00 00 00    	je     0x4089db
408919:	b9 00 04 00 00       	mov    $0x400,%ecx
40891e:	85 4d 10             	test   %ecx,0x10(%ebp)
408921:	74 2c                	je     0x40894f
408923:	8b 4d 20             	mov    0x20(%ebp),%ecx
408926:	85 c9                	test   %ecx,%ecx
408928:	0f 84 ad 00 00 00    	je     0x4089db
40892e:	3b f9                	cmp    %ecx,%edi
408930:	0f 8f a5 00 00 00    	jg     0x4089db
408936:	51                   	push   %ecx
408937:	ff 75 1c             	push   0x1c(%ebp)
40893a:	56                   	push   %esi
40893b:	53                   	push   %ebx
40893c:	ff 75 10             	push   0x10(%ebp)
40893f:	ff 75 0c             	push   0xc(%ebp)
408942:	e8 39 72 00 00       	call   0x40fb80
408947:	83 c4 18             	add    $0x18,%esp
40894a:	e9 8c 00 00 00       	jmp    0x4089db
40894f:	85 ff                	test   %edi,%edi
408951:	7e 42                	jle    0x408995
408953:	6a e0                	push   $0xffffffe0
408955:	33 d2                	xor    %edx,%edx
408957:	58                   	pop    %eax
408958:	f7 f7                	div    %edi
40895a:	83 f8 02             	cmp    $0x2,%eax
40895d:	72 36                	jb     0x408995
40895f:	8d 04 7d 08 00 00 00 	lea    0x8(,%edi,2),%eax
408966:	3b c1                	cmp    %ecx,%eax
408968:	77 13                	ja     0x40897d
40896a:	e8 41 72 00 00       	call   0x40fbb0
40896f:	8b f4                	mov    %esp,%esi
408971:	85 f6                	test   %esi,%esi
408973:	74 66                	je     0x4089db
408975:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
40897b:	eb 13                	jmp    0x408990
40897d:	50                   	push   %eax
40897e:	e8 ba f8 ff ff       	call   0x40823d
408983:	8b f0                	mov    %eax,%esi
408985:	59                   	pop    %ecx
408986:	85 f6                	test   %esi,%esi
408988:	74 51                	je     0x4089db
40898a:	c7 06 dd dd 00 00    	movl   $0xdddd,(%esi)
408990:	83 c6 08             	add    $0x8,%esi
408993:	eb 02                	jmp    0x408997
408995:	33 f6                	xor    %esi,%esi
408997:	85 f6                	test   %esi,%esi
408999:	74 40                	je     0x4089db
40899b:	57                   	push   %edi
40899c:	56                   	push   %esi
40899d:	ff 75 f8             	push   -0x8(%ebp)
4089a0:	53                   	push   %ebx
4089a1:	ff 75 10             	push   0x10(%ebp)
4089a4:	ff 75 0c             	push   0xc(%ebp)
4089a7:	e8 d4 71 00 00       	call   0x40fb80
4089ac:	83 c4 18             	add    $0x18,%esp
4089af:	85 c0                	test   %eax,%eax
4089b1:	74 21                	je     0x4089d4
4089b3:	33 c0                	xor    %eax,%eax
4089b5:	50                   	push   %eax
4089b6:	50                   	push   %eax
4089b7:	39 45 20             	cmp    %eax,0x20(%ebp)
4089ba:	75 04                	jne    0x4089c0
4089bc:	50                   	push   %eax
4089bd:	50                   	push   %eax
4089be:	eb 06                	jmp    0x4089c6
4089c0:	ff 75 20             	push   0x20(%ebp)
4089c3:	ff 75 1c             	push   0x1c(%ebp)
4089c6:	57                   	push   %edi
4089c7:	56                   	push   %esi
4089c8:	50                   	push   %eax
4089c9:	ff 75 24             	push   0x24(%ebp)
4089cc:	ff 15 4c 90 41 00    	call   *0x41904c
4089d2:	8b f8                	mov    %eax,%edi
4089d4:	56                   	push   %esi
4089d5:	e8 60 00 00 00       	call   0x408a3a
4089da:	59                   	pop    %ecx
4089db:	53                   	push   %ebx
4089dc:	e8 59 00 00 00       	call   0x408a3a
4089e1:	59                   	pop    %ecx
4089e2:	8b c7                	mov    %edi,%eax
4089e4:	8d 65 ec             	lea    -0x14(%ebp),%esp
4089e7:	5f                   	pop    %edi
4089e8:	5e                   	pop    %esi
4089e9:	5b                   	pop    %ebx
4089ea:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4089ed:	33 cd                	xor    %ebp,%ecx
4089ef:	e8 45 bd ff ff       	call   0x404739
4089f4:	c9                   	leave
4089f5:	c3                   	ret
4089f6:	55                   	push   %ebp
4089f7:	8b ec                	mov    %esp,%ebp
4089f9:	83 ec 10             	sub    $0x10,%esp
4089fc:	ff 75 08             	push   0x8(%ebp)
4089ff:	8d 4d f0             	lea    -0x10(%ebp),%ecx
408a02:	e8 f6 c7 ff ff       	call   0x4051fd
408a07:	ff 75 28             	push   0x28(%ebp)
408a0a:	8d 45 f0             	lea    -0x10(%ebp),%eax
408a0d:	ff 75 24             	push   0x24(%ebp)
408a10:	ff 75 20             	push   0x20(%ebp)
408a13:	ff 75 1c             	push   0x1c(%ebp)
408a16:	ff 75 18             	push   0x18(%ebp)
408a19:	ff 75 14             	push   0x14(%ebp)
408a1c:	ff 75 10             	push   0x10(%ebp)
408a1f:	ff 75 0c             	push   0xc(%ebp)
408a22:	50                   	push   %eax
408a23:	e8 e5 fd ff ff       	call   0x40880d
408a28:	83 c4 24             	add    $0x24,%esp
408a2b:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
408a2f:	74 07                	je     0x408a38
408a31:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408a34:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
408a38:	c9                   	leave
408a39:	c3                   	ret
408a3a:	55                   	push   %ebp
408a3b:	8b ec                	mov    %esp,%ebp
408a3d:	8b 45 08             	mov    0x8(%ebp),%eax
408a40:	85 c0                	test   %eax,%eax
408a42:	74 12                	je     0x408a56
408a44:	83 e8 08             	sub    $0x8,%eax
408a47:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
408a4d:	75 07                	jne    0x408a56
408a4f:	50                   	push   %eax
408a50:	e8 c3 c6 ff ff       	call   0x405118
408a55:	59                   	pop    %ecx
408a56:	5d                   	pop    %ebp
408a57:	c3                   	ret
408a58:	55                   	push   %ebp
408a59:	8b ec                	mov    %esp,%ebp
408a5b:	56                   	push   %esi
408a5c:	57                   	push   %edi
408a5d:	33 f6                	xor    %esi,%esi
408a5f:	6a 00                	push   $0x0
408a61:	ff 75 0c             	push   0xc(%ebp)
408a64:	ff 75 08             	push   0x8(%ebp)
408a67:	e8 1b 72 00 00       	call   0x40fc87
408a6c:	8b f8                	mov    %eax,%edi
408a6e:	83 c4 0c             	add    $0xc,%esp
408a71:	85 ff                	test   %edi,%edi
408a73:	75 27                	jne    0x408a9c
408a75:	39 05 a8 1d 42 00    	cmp    %eax,0x421da8
408a7b:	76 1f                	jbe    0x408a9c
408a7d:	56                   	push   %esi
408a7e:	ff 15 20 90 41 00    	call   *0x419020
408a84:	8d 8e e8 03 00 00    	lea    0x3e8(%esi),%ecx
408a8a:	8b f1                	mov    %ecx,%esi
408a8c:	3b 0d a8 1d 42 00    	cmp    0x421da8,%ecx
408a92:	76 03                	jbe    0x408a97
408a94:	83 ce ff             	or     $0xffffffff,%esi
408a97:	83 fe ff             	cmp    $0xffffffff,%esi
408a9a:	75 c3                	jne    0x408a5f
408a9c:	8b c7                	mov    %edi,%eax
408a9e:	5f                   	pop    %edi
408a9f:	5e                   	pop    %esi
408aa0:	5d                   	pop    %ebp
408aa1:	c3                   	ret
408aa2:	55                   	push   %ebp
408aa3:	8b ec                	mov    %esp,%ebp
408aa5:	53                   	push   %ebx
408aa6:	56                   	push   %esi
408aa7:	57                   	push   %edi
408aa8:	8b 3d a8 1d 42 00    	mov    0x421da8,%edi
408aae:	33 f6                	xor    %esi,%esi
408ab0:	ff 75 08             	push   0x8(%ebp)
408ab3:	e8 85 f7 ff ff       	call   0x40823d
408ab8:	8b d8                	mov    %eax,%ebx
408aba:	59                   	pop    %ecx
408abb:	85 db                	test   %ebx,%ebx
408abd:	75 25                	jne    0x408ae4
408abf:	85 ff                	test   %edi,%edi
408ac1:	74 21                	je     0x408ae4
408ac3:	56                   	push   %esi
408ac4:	ff 15 20 90 41 00    	call   *0x419020
408aca:	8b 3d a8 1d 42 00    	mov    0x421da8,%edi
408ad0:	8d 8e e8 03 00 00    	lea    0x3e8(%esi),%ecx
408ad6:	8b f1                	mov    %ecx,%esi
408ad8:	3b cf                	cmp    %edi,%ecx
408ada:	76 03                	jbe    0x408adf
408adc:	83 ce ff             	or     $0xffffffff,%esi
408adf:	83 fe ff             	cmp    $0xffffffff,%esi
408ae2:	75 cc                	jne    0x408ab0
408ae4:	5f                   	pop    %edi
408ae5:	5e                   	pop    %esi
408ae6:	8b c3                	mov    %ebx,%eax