405694:	53                   	push   %ebx
405695:	56                   	push   %esi
405696:	57                   	push   %edi
405697:	89 65 e8             	mov    %esp,-0x18(%ebp)
40569a:	ff 15 e4 d0 40 00    	call   *0x40d0e4
4056a0:	33 d2                	xor    %edx,%edx
4056a2:	8a d4                	mov    %ah,%dl
4056a4:	89 15 94 18 41 00    	mov    %edx,0x411894
4056aa:	8b c8                	mov    %eax,%ecx
4056ac:	81 e1 ff 00 00 00    	and    $0xff,%ecx
4056b2:	89 0d 90 18 41 00    	mov    %ecx,0x411890
4056b8:	c1 e1 08             	shl    $0x8,%ecx
4056bb:	03 ca                	add    %edx,%ecx
4056bd:	89 0d 8c 18 41 00    	mov    %ecx,0x41188c
4056c3:	c1 e8 10             	shr    $0x10,%eax
4056c6:	a3 88 18 41 00       	mov    %eax,0x411888
4056cb:	6a 01                	push   $0x1
4056cd:	e8 5c 30 00 00       	call   0x40872e
4056d2:	59                   	pop    %ecx
4056d3:	85 c0                	test   %eax,%eax
4056d5:	75 08                	jne    0x4056df
4056d7:	6a 1c                	push   $0x1c
4056d9:	e8 c3 00 00 00       	call   0x4057a1
4056de:	59                   	pop    %ecx
4056df:	e8 7c 2f 00 00       	call   0x408660
4056e4:	85 c0                	test   %eax,%eax
4056e6:	75 08                	jne    0x4056f0
4056e8:	6a 10                	push   $0x10
4056ea:	e8 b2 00 00 00       	call   0x4057a1
4056ef:	59                   	pop    %ecx
4056f0:	33 f6                	xor    %esi,%esi
4056f2:	89 75 fc             	mov    %esi,-0x4(%ebp)
4056f5:	e8 aa 2d 00 00       	call   0x4084a4
4056fa:	ff 15 e0 d0 40 00    	call   *0x40d0e0
405700:	a3 04 2f 41 00       	mov    %eax,0x412f04
405705:	e8 68 2c 00 00       	call   0x408372
40570a:	a3 e4 17 41 00       	mov    %eax,0x4117e4
40570f:	e8 11 2a 00 00       	call   0x408125
405714:	e8 53 29 00 00       	call   0x40806c
405719:	e8 d2 19 00 00       	call   0x4070f0
40571e:	89 75 d0             	mov    %esi,-0x30(%ebp)
405721:	8d 45 a4             	lea    -0x5c(%ebp),%eax
405724:	50                   	push   %eax
405725:	ff 15 dc d0 40 00    	call   *0x40d0dc
40572b:	e8 e4 28 00 00       	call   0x408014
405730:	89 45 9c             	mov    %eax,-0x64(%ebp)
405733:	f6 45 d0 01          	testb  $0x1,-0x30(%ebp)
405737:	74 06                	je     0x40573f
405739:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
40573d:	eb 03                	jmp    0x405742
40573f:	6a 0a                	push   $0xa
405741:	58                   	pop    %eax
405742:	50                   	push   %eax
405743:	ff 75 9c             	push   -0x64(%ebp)
405746:	56                   	push   %esi
405747:	56                   	push   %esi
405748:	ff 15 d8 d0 40 00    	call   *0x40d0d8
40574e:	50                   	push   %eax
40574f:	e8 3c bf ff ff       	call   0x401690
405754:	89 45 a0             	mov    %eax,-0x60(%ebp)
405757:	50                   	push   %eax
405758:	e8 c0 19 00 00       	call   0x40711d
40575d:	8b 45 ec             	mov    -0x14(%ebp),%eax
405760:	8b 08                	mov    (%eax),%ecx
405762:	8b 09                	mov    (%ecx),%ecx
405764:	89 4d 98             	mov    %ecx,-0x68(%ebp)
405767:	50                   	push   %eax
405768:	51                   	push   %ecx
405769:	e8 2e 27 00 00       	call   0x407e9c
40576e:	59                   	pop    %ecx
40576f:	59                   	pop    %ecx
405770:	c3                   	ret
405771:	8b 65 e8             	mov    -0x18(%ebp),%esp
405774:	ff 75 98             	push   -0x68(%ebp)
405777:	e8 b2 19 00 00       	call   0x40712e
40577c:	83 3d ec 17 41 00 01 	cmpl   $0x1,0x4117ec
405783:	75 05                	jne    0x40578a
405785:	e8 c2 30 00 00       	call   0x40884c
40578a:	ff 74 24 04          	push   0x4(%esp)
40578e:	e8 f2 30 00 00       	call   0x408885
405793:	68 ff 00 00 00       	push   $0xff
405798:	ff 15 60 05 41 00    	call   *0x410560
40579e:	59                   	pop    %ecx
40579f:	59                   	pop    %ecx
4057a0:	c3                   	ret
4057a1:	83 3d ec 17 41 00 01 	cmpl   $0x1,0x4117ec
4057a8:	75 05                	jne    0x4057af
4057aa:	e8 9d 30 00 00       	call   0x40884c
4057af:	ff 74 24 04          	push   0x4(%esp)
4057b3:	e8 cd 30 00 00       	call   0x408885
4057b8:	59                   	pop    %ecx
4057b9:	68 ff 00 00 00       	push   $0xff
4057be:	ff 15 e8 d0 40 00    	call   *0x40d0e8
4057c4:	c3                   	ret
4057c5:	56                   	push   %esi
4057c6:	8b f1                	mov    %ecx,%esi
4057c8:	6a 1b                	push   $0x1b
4057ca:	c7 06 00 d4 40 00    	movl   $0x40d400,(%esi)
4057d0:	e8 20 18 00 00       	call   0x406ff5
4057d5:	8b 76 04             	mov    0x4(%esi),%esi
4057d8:	59                   	pop    %ecx
4057d9:	85 f6                	test   %esi,%esi
4057db:	74 07                	je     0x4057e4
4057dd:	56                   	push   %esi
4057de:	e8 f4 16 00 00       	call   0x406ed7
4057e3:	59                   	pop    %ecx
4057e4:	6a 1b                	push   $0x1b
4057e6:	e8 6b 18 00 00       	call   0x407056
4057eb:	59                   	pop    %ecx
4057ec:	5e                   	pop    %esi
4057ed:	c3                   	ret
4057ee:	56                   	push   %esi
4057ef:	8b f1                	mov    %ecx,%esi
4057f1:	e8 cf ff ff ff       	call   0x4057c5
4057f6:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4057fb:	74 07                	je     0x405804
4057fd:	56                   	push   %esi
4057fe:	e8 7e f7 ff ff       	call   0x404f81
405803:	59                   	pop    %ecx
405804:	8b c6                	mov    %esi,%eax
405806:	5e                   	pop    %esi
405807:	c2 04 00             	ret    $0x4
40580a:	a1 00 2f 41 00       	mov    0x412f00,%eax
40580f:	56                   	push   %esi
405810:	6a 14                	push   $0x14
405812:	85 c0                	test   %eax,%eax
405814:	5e                   	pop    %esi
405815:	75 07                	jne    0x40581e
405817:	b8 00 02 00 00       	mov    $0x200,%eax
40581c:	eb 06                	jmp    0x405824
40581e:	3b c6                	cmp    %esi,%eax
405820:	7d 07                	jge    0x405829
405822:	8b c6                	mov    %esi,%eax
405824:	a3 00 2f 41 00       	mov    %eax,0x412f00
405829:	6a 04                	push   $0x4
40582b:	50                   	push   %eax
40582c:	e8 33 32 00 00       	call   0x408a64
405831:	59                   	pop    %ecx
405832:	a3 e0 1e 41 00       	mov    %eax,0x411ee0
405837:	85 c0                	test   %eax,%eax
405839:	59                   	pop    %ecx
40583a:	75 21                	jne    0x40585d
40583c:	6a 04                	push   $0x4
40583e:	56                   	push   %esi
40583f:	89 35 00 2f 41 00    	mov    %esi,0x412f00
405845:	e8 1a 32 00 00       	call   0x408a64
40584a:	59                   	pop    %ecx
40584b:	a3 e0 1e 41 00       	mov    %eax,0x411ee0
405850:	85 c0                	test   %eax,%eax
405852:	59                   	pop    %ecx
405853:	75 08                	jne    0x40585d
405855:	6a 1a                	push   $0x1a
405857:	e8 20 ff ff ff       	call   0x40577c
40585c:	59                   	pop    %ecx
40585d:	33 c9                	xor    %ecx,%ecx
40585f:	b8 80 05 41 00       	mov    $0x410580,%eax
405864:	8b 15 e0 1e 41 00    	mov    0x411ee0,%edx
40586a:	89 04 11             	mov    %eax,(%ecx,%edx,1)
40586d:	83 c0 20             	add    $0x20,%eax
405870:	83 c1 04             	add    $0x4,%ecx
405873:	3d 00 08 41 00       	cmp    $0x410800,%eax
405878:	7c ea                	jl     0x405864
40587a:	33 c9                	xor    %ecx,%ecx
40587c:	ba 90 05 41 00       	mov    $0x410590,%edx
405881:	8b f1                	mov    %ecx,%esi
405883:	8b c1                	mov    %ecx,%eax
405885:	c1 fe 05             	sar    $0x5,%esi
405888:	83 e0 1f             	and    $0x1f,%eax
40588b:	8b 34 b5 c0 1d 41 00 	mov    0x411dc0(,%esi,4),%esi
405892:	8d 04 c0             	lea    (%eax,%eax,8),%eax
405895:	8b 04 86             	mov    (%esi,%eax,4),%eax
405898:	83 f8 ff             	cmp    $0xffffffff,%eax
40589b:	74 04                	je     0x4058a1
40589d:	85 c0                	test   %eax,%eax
40589f:	75 03                	jne    0x4058a4
4058a1:	83 0a ff             	orl    $0xffffffff,(%edx)
4058a4:	83 c2 20             	add    $0x20,%edx
4058a7:	41                   	inc    %ecx
4058a8:	81 fa f0 05 41 00    	cmp    $0x4105f0,%edx
4058ae:	7c d1                	jl     0x405881
4058b0:	5e                   	pop    %esi
4058b1:	c3                   	ret
4058b2:	e8 75 0c 00 00       	call   0x40652c
4058b7:	80 3d bc 18 41 00 00 	cmpb   $0x0,0x4118bc
4058be:	74 05                	je     0x4058c5
4058c0:	e9 2c 32 00 00       	jmp    0x408af1
4058c5:	c3                   	ret
4058c6:	8b 44 24 04          	mov    0x4(%esp),%eax
4058ca:	b9 80 05 41 00       	mov    $0x410580,%ecx
4058cf:	3b c1                	cmp    %ecx,%eax
4058d1:	72 17                	jb     0x4058ea
4058d3:	3d e0 07 41 00       	cmp    $0x4107e0,%eax
4058d8:	77 10                	ja     0x4058ea
4058da:	2b c1                	sub    %ecx,%eax
4058dc:	c1 f8 05             	sar    $0x5,%eax
4058df:	83 c0 1c             	add    $0x1c,%eax
4058e2:	50                   	push   %eax
4058e3:	e8 0d 17 00 00       	call   0x406ff5
4058e8:	59                   	pop    %ecx
4058e9:	c3                   	ret
4058ea:	83 c0 20             	add    $0x20,%eax
4058ed:	50                   	push   %eax
4058ee:	ff 15 b4 d0 40 00    	call   *0x40d0b4
4058f4:	c3                   	ret
4058f5:	8b 44 24 04          	mov    0x4(%esp),%eax
4058f9:	83 f8 14             	cmp    $0x14,%eax
4058fc:	7d 0b                	jge    0x405909
4058fe:	83 c0 1c             	add    $0x1c,%eax
405901:	50                   	push   %eax
405902:	e8 ee 16 00 00       	call   0x406ff5
405907:	59                   	pop    %ecx
405908:	c3                   	ret
405909:	8b 44 24 08          	mov    0x8(%esp),%eax
40590d:	83 c0 20             	add    $0x20,%eax
405910:	50                   	push   %eax
405911:	ff 15 b4 d0 40 00    	call   *0x40d0b4
405917:	c3                   	ret
405918:	8b 44 24 04          	mov    0x4(%esp),%eax
40591c:	b9 80 05 41 00       	mov    $0x410580,%ecx
405921:	3b c1                	cmp    %ecx,%eax
405923:	72 17                	jb     0x40593c
405925:	3d e0 07 41 00       	cmp    $0x4107e0,%eax
40592a:	77 10                	ja     0x40593c
40592c:	2b c1                	sub    %ecx,%eax
40592e:	c1 f8 05             	sar    $0x5,%eax
405931:	83 c0 1c             	add    $0x1c,%eax
405934:	50                   	push   %eax
405935:	e8 1c 17 00 00       	call   0x407056
40593a:	59                   	pop    %ecx
40593b:	c3                   	ret
40593c:	83 c0 20             	add    $0x20,%eax
40593f:	50                   	push   %eax
405940:	ff 15 c8 d0 40 00    	call   *0x40d0c8
405946:	c3                   	ret
405947:	8b 44 24 04          	mov    0x4(%esp),%eax
40594b:	83 f8 14             	cmp    $0x14,%eax
40594e:	7d 0b                	jge    0x40595b
405950:	83 c0 1c             	add    $0x1c,%eax
405953:	50                   	push   %eax
405954:	e8 fd 16 00 00       	call   0x407056
405959:	59                   	pop    %ecx
40595a:	c3                   	ret
40595b:	8b 44 24 08          	mov    0x8(%esp),%eax
40595f:	83 c0 20             	add    $0x20,%eax
405962:	50                   	push   %eax
405963:	ff 15 c8 d0 40 00    	call   *0x40d0c8
405969:	c3                   	ret
40596a:	55                   	push   %ebp
40596b:	8b ec                	mov    %esp,%ebp
40596d:	51                   	push   %ecx
40596e:	53                   	push   %ebx
40596f:	56                   	push   %esi
405970:	57                   	push   %edi
405971:	8b 45 0c             	mov    0xc(%ebp),%eax
405974:	83 c0 0c             	add    $0xc,%eax
405977:	89 45 fc             	mov    %eax,-0x4(%ebp)
40597a:	64 8b 1d 00 00 00 00 	mov    %fs:0x0,%ebx
405981:	8b 03                	mov    (%ebx),%eax
405983:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405989:	8b 45 08             	mov    0x8(%ebp),%eax
40598c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40598f:	8b 63 fc             	mov    -0x4(%ebx),%esp
405992:	8b 6d fc             	mov    -0x4(%ebp),%ebp
405995:	ff e0                	jmp    *%eax
405997:	5f                   	pop    %edi
405998:	5e                   	pop    %esi
405999:	5b                   	pop    %ebx
40599a:	c9                   	leave
40599b:	c2 08 00             	ret    $0x8
40599e:	58                   	pop    %eax
40599f:	59                   	pop    %ecx
4059a0:	87 04 24             	xchg   %eax,(%esp)
4059a3:	ff e0                	jmp    *%eax
4059a5:	58                   	pop    %eax
4059a6:	59                   	pop    %ecx
4059a7:	87 04 24             	xchg   %eax,(%esp)
4059aa:	ff e0                	jmp    *%eax
4059ac:	55                   	push   %ebp
4059ad:	8b ec                	mov    %esp,%ebp
4059af:	51                   	push   %ecx
4059b0:	51                   	push   %ecx
4059b1:	53                   	push   %ebx
4059b2:	56                   	push   %esi
4059b3:	57                   	push   %edi
4059b4:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4059ba:	89 45 f8             	mov    %eax,-0x8(%ebp)
4059bd:	c7 45 fc d4 59 40 00 	movl   $0x4059d4,-0x4(%ebp)
4059c4:	6a 00                	push   $0x0
4059c6:	ff 75 0c             	push   0xc(%ebp)
4059c9:	ff 75 fc             	push   -0x4(%ebp)
4059cc:	ff 75 08             	push   0x8(%ebp)
4059cf:	e8 48 6a 00 00       	call   0x40c41c
4059d4:	8b 45 0c             	mov    0xc(%ebp),%eax
4059d7:	8b 40 04             	mov    0x4(%eax),%eax
4059da:	24 fd                	and    $0xfd,%al
4059dc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4059df:	89 41 04             	mov    %eax,0x4(%ecx)
4059e2:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4059e8:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4059eb:	89 03                	mov    %eax,(%ebx)
4059ed:	64 89 1d 00 00 00 00 	mov    %ebx,%fs:0x0
4059f4:	5f                   	pop    %edi
4059f5:	5e                   	pop    %esi
4059f6:	5b                   	pop    %ebx
4059f7:	c9                   	leave
4059f8:	c2 08 00             	ret    $0x8
4059fb:	55                   	push   %ebp
4059fc:	8b ec                	mov    %esp,%ebp
4059fe:	83 ec 04             	sub    $0x4,%esp
405a01:	53                   	push   %ebx
405a02:	56                   	push   %esi
405a03:	57                   	push   %edi
405a04:	fc                   	cld
405a05:	89 45 fc             	mov    %eax,-0x4(%ebp)
405a08:	33 c0                	xor    %eax,%eax
405a0a:	50                   	push   %eax
405a0b:	50                   	push   %eax
405a0c:	50                   	push   %eax
405a0d:	ff 75 fc             	push   -0x4(%ebp)
405a10:	ff 75 14             	push   0x14(%ebp)
405a13:	ff 75 10             	push   0x10(%ebp)
405a16:	ff 75 0c             	push   0xc(%ebp)
405a19:	ff 75 08             	push   0x8(%ebp)
405a1c:	e8 51 31 00 00       	call   0x408b72
405a21:	83 c4 20             	add    $0x20,%esp
405a24:	89 45 14             	mov    %eax,0x14(%ebp)
405a27:	5f                   	pop    %edi
405a28:	5e                   	pop    %esi
405a29:	5b                   	pop    %ebx
405a2a:	8b 45 14             	mov    0x14(%ebp),%eax
405a2d:	8b e5                	mov    %ebp,%esp
405a2f:	5d                   	pop    %ebp
405a30:	c3                   	ret
405a31:	55                   	push   %ebp
405a32:	8b ec                	mov    %esp,%ebp
405a34:	83 ec 14             	sub    $0x14,%esp
405a37:	8b 45 0c             	mov    0xc(%ebp),%eax
405a3a:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
405a3e:	8b 4d 08             	mov    0x8(%ebp),%ecx
405a41:	89 45 f4             	mov    %eax,-0xc(%ebp)
405a44:	8b 45 14             	mov    0x14(%ebp),%eax
405a47:	c7 45 f0 85 5a 40 00 	movl   $0x405a85,-0x10(%ebp)
405a4e:	40                   	inc    %eax
405a4f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405a52:	89 45 fc             	mov    %eax,-0x4(%ebp)
405a55:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
405a5b:	89 45 ec             	mov    %eax,-0x14(%ebp)
405a5e:	8d 85 ec ff ff ff    	lea    -0x14(%ebp),%eax
405a64:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
405a6a:	ff 75 18             	push   0x18(%ebp)