40b6f4:	53                   	push   %ebx
40b6f5:	33 db                	xor    %ebx,%ebx
40b6f7:	39 1d 54 1a 41 00    	cmp    %ebx,0x411a54
40b6fd:	56                   	push   %esi
40b6fe:	57                   	push   %edi
40b6ff:	75 42                	jne    0x40b743
40b701:	68 6c d8 40 00       	push   $0x40d86c
40b706:	ff 15 4c d0 40 00    	call   *0x40d04c
40b70c:	8b f8                	mov    %eax,%edi
40b70e:	3b fb                	cmp    %ebx,%edi
40b710:	74 67                	je     0x40b779
40b712:	8b 35 50 d0 40 00    	mov    0x40d050,%esi
40b718:	68 60 d8 40 00       	push   $0x40d860
40b71d:	57                   	push   %edi
40b71e:	ff d6                	call   *%esi
40b720:	85 c0                	test   %eax,%eax
40b722:	a3 54 1a 41 00       	mov    %eax,0x411a54
40b727:	74 50                	je     0x40b779
40b729:	68 50 d8 40 00       	push   $0x40d850
40b72e:	57                   	push   %edi
40b72f:	ff d6                	call   *%esi
40b731:	68 3c d8 40 00       	push   $0x40d83c
40b736:	57                   	push   %edi
40b737:	a3 58 1a 41 00       	mov    %eax,0x411a58
40b73c:	ff d6                	call   *%esi
40b73e:	a3 5c 1a 41 00       	mov    %eax,0x411a5c
40b743:	a1 58 1a 41 00       	mov    0x411a58,%eax
40b748:	85 c0                	test   %eax,%eax
40b74a:	74 16                	je     0x40b762
40b74c:	ff d0                	call   *%eax
40b74e:	8b d8                	mov    %eax,%ebx
40b750:	85 db                	test   %ebx,%ebx
40b752:	74 0e                	je     0x40b762
40b754:	a1 5c 1a 41 00       	mov    0x411a5c,%eax
40b759:	85 c0                	test   %eax,%eax
40b75b:	74 05                	je     0x40b762
40b75d:	53                   	push   %ebx
40b75e:	ff d0                	call   *%eax
40b760:	8b d8                	mov    %eax,%ebx
40b762:	ff 74 24 18          	push   0x18(%esp)
40b766:	ff 74 24 18          	push   0x18(%esp)
40b76a:	ff 74 24 18          	push   0x18(%esp)
40b76e:	53                   	push   %ebx
40b76f:	ff 15 54 1a 41 00    	call   *0x411a54
40b775:	5f                   	pop    %edi
40b776:	5e                   	pop    %esi
40b777:	5b                   	pop    %ebx
40b778:	c3                   	ret
40b779:	33 c0                	xor    %eax,%eax
40b77b:	eb f8                	jmp    0x40b775
40b77d:	56                   	push   %esi
40b77e:	6a 01                	push   $0x1
40b780:	5e                   	pop    %esi
40b781:	ff 74 24 0c          	push   0xc(%esp)
40b785:	ff 74 24 0c          	push   0xc(%esp)
40b789:	ff 15 48 d0 40 00    	call   *0x40d048
40b78f:	85 c0                	test   %eax,%eax
40b791:	74 02                	je     0x40b795
40b793:	33 f6                	xor    %esi,%esi
40b795:	8b c6                	mov    %esi,%eax
40b797:	5e                   	pop    %esi
40b798:	c3                   	ret
40b799:	56                   	push   %esi
40b79a:	6a 01                	push   $0x1
40b79c:	5e                   	pop    %esi
40b79d:	ff 74 24 0c          	push   0xc(%esp)
40b7a1:	ff 74 24 0c          	push   0xc(%esp)
40b7a5:	ff 15 68 d0 40 00    	call   *0x40d068
40b7ab:	85 c0                	test   %eax,%eax
40b7ad:	74 02                	je     0x40b7b1
40b7af:	33 f6                	xor    %esi,%esi
40b7b1:	8b c6                	mov    %esi,%eax
40b7b3:	5e                   	pop    %esi
40b7b4:	c3                   	ret
40b7b5:	56                   	push   %esi
40b7b6:	6a 01                	push   $0x1
40b7b8:	5e                   	pop    %esi
40b7b9:	ff 74 24 08          	push   0x8(%esp)
40b7bd:	ff 15 44 d0 40 00    	call   *0x40d044
40b7c3:	85 c0                	test   %eax,%eax
40b7c5:	74 02                	je     0x40b7c9
40b7c7:	33 f6                	xor    %esi,%esi
40b7c9:	8b c6                	mov    %esi,%eax
40b7cb:	5e                   	pop    %esi
40b7cc:	c3                   	ret
40b7cd:	6a 0a                	push   $0xa
40b7cf:	e8 b1 d0 ff ff       	call   0x408885
40b7d4:	6a 16                	push   $0x16
40b7d6:	e8 e3 08 00 00       	call   0x40c0be
40b7db:	59                   	pop    %ecx
40b7dc:	59                   	pop    %ecx
40b7dd:	6a 03                	push   $0x3
40b7df:	e8 4a b9 ff ff       	call   0x40712e
40b7e4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40b7e8:	56                   	push   %esi
40b7e9:	3b 0d c0 1e 41 00    	cmp    0x411ec0,%ecx
40b7ef:	57                   	push   %edi
40b7f0:	73 58                	jae    0x40b84a
40b7f2:	8b c1                	mov    %ecx,%eax
40b7f4:	c1 f8 05             	sar    $0x5,%eax
40b7f7:	8d 3c 85 c0 1d 41 00 	lea    0x411dc0(,%eax,4),%edi
40b7fe:	8b c1                	mov    %ecx,%eax
40b800:	83 e0 1f             	and    $0x1f,%eax
40b803:	8d 34 c0             	lea    (%eax,%eax,8),%esi
40b806:	8b 07                	mov    (%edi),%eax
40b808:	c1 e6 02             	shl    $0x2,%esi
40b80b:	03 c6                	add    %esi,%eax
40b80d:	f6 40 04 01          	testb  $0x1,0x4(%eax)
40b811:	74 37                	je     0x40b84a
40b813:	83 38 ff             	cmpl   $0xffffffff,(%eax)
40b816:	74 32                	je     0x40b84a
40b818:	83 3d 64 05 41 00 01 	cmpl   $0x1,0x410564
40b81f:	75 1f                	jne    0x40b840
40b821:	33 c0                	xor    %eax,%eax
40b823:	2b c8                	sub    %eax,%ecx
40b825:	74 10                	je     0x40b837
40b827:	49                   	dec    %ecx
40b828:	74 08                	je     0x40b832
40b82a:	49                   	dec    %ecx
40b82b:	75 13                	jne    0x40b840
40b82d:	50                   	push   %eax
40b82e:	6a f4                	push   $0xfffffff4
40b830:	eb 08                	jmp    0x40b83a
40b832:	50                   	push   %eax
40b833:	6a f5                	push   $0xfffffff5
40b835:	eb 03                	jmp    0x40b83a
40b837:	50                   	push   %eax
40b838:	6a f6                	push   $0xfffffff6
40b83a:	ff 15 40 d0 40 00    	call   *0x40d040
40b840:	8b 07                	mov    (%edi),%eax
40b842:	83 0c 30 ff          	orl    $0xffffffff,(%eax,%esi,1)
40b846:	33 c0                	xor    %eax,%eax
40b848:	eb 16                	jmp    0x40b860
40b84a:	e8 8f b8 ff ff       	call   0x4070de
40b84f:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b855:	e8 8d b8 ff ff       	call   0x4070e7
40b85a:	83 20 00             	andl   $0x0,(%eax)
40b85d:	83 c8 ff             	or     $0xffffffff,%eax
40b860:	5f                   	pop    %edi
40b861:	5e                   	pop    %esi
40b862:	c3                   	ret
40b863:	8b 44 24 04          	mov    0x4(%esp),%eax
40b867:	3b 05 c0 1e 41 00    	cmp    0x411ec0,%eax
40b86d:	73 1f                	jae    0x40b88e
40b86f:	8b c8                	mov    %eax,%ecx
40b871:	83 e0 1f             	and    $0x1f,%eax
40b874:	c1 f9 05             	sar    $0x5,%ecx
40b877:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40b87a:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40b881:	f6 44 81 04 01       	testb  $0x1,0x4(%ecx,%eax,4)
40b886:	8d 04 81             	lea    (%ecx,%eax,4),%eax
40b889:	74 03                	je     0x40b88e
40b88b:	8b 00                	mov    (%eax),%eax
40b88d:	c3                   	ret
40b88e:	e8 4b b8 ff ff       	call   0x4070de
40b893:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b899:	e8 49 b8 ff ff       	call   0x4070e7
40b89e:	83 20 00             	andl   $0x0,(%eax)
40b8a1:	83 c8 ff             	or     $0xffffffff,%eax
40b8a4:	c3                   	ret
40b8a5:	8b 44 24 04          	mov    0x4(%esp),%eax
40b8a9:	53                   	push   %ebx
40b8aa:	8b c8                	mov    %eax,%ecx
40b8ac:	83 e0 1f             	and    $0x1f,%eax
40b8af:	c1 f9 05             	sar    $0x5,%ecx
40b8b2:	56                   	push   %esi
40b8b3:	57                   	push   %edi
40b8b4:	8b 34 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%esi
40b8bb:	8d 1c 8d c0 1d 41 00 	lea    0x411dc0(,%ecx,4),%ebx
40b8c2:	8d 3c c0             	lea    (%eax,%eax,8),%edi
40b8c5:	c1 e7 02             	shl    $0x2,%edi
40b8c8:	03 f7                	add    %edi,%esi
40b8ca:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40b8ce:	75 23                	jne    0x40b8f3
40b8d0:	6a 11                	push   $0x11
40b8d2:	e8 1e b7 ff ff       	call   0x406ff5
40b8d7:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
40b8db:	59                   	pop    %ecx
40b8dc:	75 0d                	jne    0x40b8eb
40b8de:	8d 46 0c             	lea    0xc(%esi),%eax
40b8e1:	50                   	push   %eax
40b8e2:	ff 15 bc d0 40 00    	call   *0x40d0bc
40b8e8:	ff 46 08             	incl   0x8(%esi)
40b8eb:	6a 11                	push   $0x11
40b8ed:	e8 64 b7 ff ff       	call   0x407056
40b8f2:	59                   	pop    %ecx
40b8f3:	8b 03                	mov    (%ebx),%eax
40b8f5:	8d 44 38 0c          	lea    0xc(%eax,%edi,1),%eax
40b8f9:	50                   	push   %eax
40b8fa:	ff 15 b4 d0 40 00    	call   *0x40d0b4
40b900:	5f                   	pop    %edi
40b901:	5e                   	pop    %esi
40b902:	5b                   	pop    %ebx
40b903:	c3                   	ret
40b904:	8b 44 24 04          	mov    0x4(%esp),%eax
40b908:	8b c8                	mov    %eax,%ecx
40b90a:	83 e0 1f             	and    $0x1f,%eax
40b90d:	c1 f9 05             	sar    $0x5,%ecx
40b910:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40b913:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40b91a:	8d 44 81 0c          	lea    0xc(%ecx,%eax,4),%eax
40b91e:	50                   	push   %eax
40b91f:	ff 15 c8 d0 40 00    	call   *0x40d0c8
40b925:	c3                   	ret
40b926:	56                   	push   %esi
40b927:	8b 74 24 08          	mov    0x8(%esp),%esi
40b92b:	3b 35 c0 1e 41 00    	cmp    0x411ec0,%esi
40b931:	73 40                	jae    0x40b973
40b933:	8b ce                	mov    %esi,%ecx
40b935:	8b c6                	mov    %esi,%eax
40b937:	c1 f9 05             	sar    $0x5,%ecx
40b93a:	83 e0 1f             	and    $0x1f,%eax
40b93d:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
40b944:	8d 04 c0             	lea    (%eax,%eax,8),%eax
40b947:	f6 44 81 04 01       	testb  $0x1,0x4(%ecx,%eax,4)
40b94c:	74 25                	je     0x40b973
40b94e:	57                   	push   %edi
40b94f:	56                   	push   %esi
40b950:	e8 50 ff ff ff       	call   0x40b8a5
40b955:	ff 74 24 18          	push   0x18(%esp)
40b959:	ff 74 24 18          	push   0x18(%esp)
40b95d:	56                   	push   %esi
40b95e:	e8 28 00 00 00       	call   0x40b98b
40b963:	56                   	push   %esi
40b964:	8b f8                	mov    %eax,%edi
40b966:	e8 99 ff ff ff       	call   0x40b904
40b96b:	83 c4 14             	add    $0x14,%esp
40b96e:	8b c7                	mov    %edi,%eax
40b970:	5f                   	pop    %edi
40b971:	5e                   	pop    %esi
40b972:	c3                   	ret
40b973:	e8 66 b7 ff ff       	call   0x4070de
40b978:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40b97e:	e8 64 b7 ff ff       	call   0x4070e7
40b983:	83 20 00             	andl   $0x0,(%eax)
40b986:	83 c8 ff             	or     $0xffffffff,%eax
40b989:	5e                   	pop    %esi
40b98a:	c3                   	ret
40b98b:	55                   	push   %ebp
40b98c:	8b ec                	mov    %esp,%ebp
40b98e:	83 ec 0c             	sub    $0xc,%esp
40b991:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40b995:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40b999:	53                   	push   %ebx
40b99a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40b99d:	56                   	push   %esi
40b99e:	57                   	push   %edi
40b99f:	8b d3                	mov    %ebx,%edx
40b9a1:	0f 84 b6 01 00 00    	je     0x40bb5d
40b9a7:	8b 45 08             	mov    0x8(%ebp),%eax
40b9aa:	8b c8                	mov    %eax,%ecx
40b9ac:	83 e0 1f             	and    $0x1f,%eax
40b9af:	c1 f9 05             	sar    $0x5,%ecx
40b9b2:	8d 34 c0             	lea    (%eax,%eax,8),%esi
40b9b5:	8b 04 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%eax
40b9bc:	8d 3c 8d c0 1d 41 00 	lea    0x411dc0(,%ecx,4),%edi
40b9c3:	c1 e6 02             	shl    $0x2,%esi
40b9c6:	03 c6                	add    %esi,%eax
40b9c8:	8a 48 04             	mov    0x4(%eax),%cl
40b9cb:	f6 c1 02             	test   $0x2,%cl
40b9ce:	0f 85 89 01 00 00    	jne    0x40bb5d
40b9d4:	f6 c1 48             	test   $0x48,%cl
40b9d7:	74 1d                	je     0x40b9f6
40b9d9:	8a 40 05             	mov    0x5(%eax),%al
40b9dc:	3c 0a                	cmp    $0xa,%al
40b9de:	74 16                	je     0x40b9f6
40b9e0:	ff 4d 10             	decl   0x10(%ebp)
40b9e3:	88 03                	mov    %al,(%ebx)
40b9e5:	8b 07                	mov    (%edi),%eax
40b9e7:	8d 53 01             	lea    0x1(%ebx),%edx
40b9ea:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
40b9f1:	c6 44 30 05 0a       	movb   $0xa,0x5(%eax,%esi,1)
40b9f6:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b9f9:	6a 00                	push   $0x0
40b9fb:	50                   	push   %eax
40b9fc:	8b 07                	mov    (%edi),%eax
40b9fe:	ff 75 10             	push   0x10(%ebp)
40ba01:	52                   	push   %edx
40ba02:	ff 34 30             	push   (%eax,%esi,1)
40ba05:	ff 15 3c d0 40 00    	call   *0x40d03c
40ba0b:	85 c0                	test   %eax,%eax
40ba0d:	75 39                	jne    0x40ba48
40ba0f:	ff 15 9c d0 40 00    	call   *0x40d09c
40ba15:	6a 05                	push   $0x5
40ba17:	5e                   	pop    %esi
40ba18:	3b c6                	cmp    %esi,%eax
40ba1a:	75 14                	jne    0x40ba30
40ba1c:	e8 bd b6 ff ff       	call   0x4070de
40ba21:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40ba27:	e8 bb b6 ff ff       	call   0x4070e7
40ba2c:	89 30                	mov    %esi,(%eax)
40ba2e:	eb 10                	jmp    0x40ba40
40ba30:	83 f8 6d             	cmp    $0x6d,%eax
40ba33:	0f 84 24 01 00 00    	je     0x40bb5d
40ba39:	50                   	push   %eax
40ba3a:	e8 2c b6 ff ff       	call   0x40706b
40ba3f:	59                   	pop    %ecx
40ba40:	83 c8 ff             	or     $0xffffffff,%eax
40ba43:	e9 17 01 00 00       	jmp    0x40bb5f
40ba48:	8b 07                	mov    (%edi),%eax
40ba4a:	8b 55 f4             	mov    -0xc(%ebp),%edx
40ba4d:	01 55 f8             	add    %edx,-0x8(%ebp)
40ba50:	8d 4c 30 04          	lea    0x4(%eax,%esi,1),%ecx
40ba54:	8a 44 30 04          	mov    0x4(%eax,%esi,1),%al
40ba58:	a8 80                	test   $0x80,%al
40ba5a:	0f 84 f8 00 00 00    	je     0x40bb58
40ba60:	85 d2                	test   %edx,%edx
40ba62:	74 09                	je     0x40ba6d
40ba64:	80 3b 0a             	cmpb   $0xa,(%ebx)
40ba67:	75 04                	jne    0x40ba6d
40ba69:	0c 04                	or     $0x4,%al
40ba6b:	eb 02                	jmp    0x40ba6f
40ba6d:	24 fb                	and    $0xfb,%al
40ba6f:	88 01                	mov    %al,(%ecx)
40ba71:	8b 45 0c             	mov    0xc(%ebp),%eax
40ba74:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ba77:	89 45 10             	mov    %eax,0x10(%ebp)
40ba7a:	03 c8                	add    %eax,%ecx
40ba7c:	3b c1                	cmp    %ecx,%eax
40ba7e:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40ba81:	0f 83 cb 00 00 00    	jae    0x40bb52
40ba87:	8b 45 10             	mov    0x10(%ebp),%eax
40ba8a:	8a 00                	mov    (%eax),%al
40ba8c:	3c 1a                	cmp    $0x1a,%al
40ba8e:	0f 84 ae 00 00 00    	je     0x40bb42
40ba94:	3c 0d                	cmp    $0xd,%al
40ba96:	74 0b                	je     0x40baa3
40ba98:	88 03                	mov    %al,(%ebx)
40ba9a:	43                   	inc    %ebx
40ba9b:	ff 45 10             	incl   0x10(%ebp)
40ba9e:	e9 91 00 00 00       	jmp    0x40bb34
40baa3:	49                   	dec    %ecx
40baa4:	39 4d 10             	cmp    %ecx,0x10(%ebp)
40baa7:	73 18                	jae    0x40bac1
40baa9:	8b 45 10             	mov    0x10(%ebp),%eax
40baac:	40                   	inc    %eax
40baad:	80 38 0a             	cmpb   $0xa,(%eax)
40bab0:	75 06                	jne    0x40bab8
40bab2:	83 45 10 02          	addl   $0x2,0x10(%ebp)
40bab6:	eb 5e                	jmp    0x40bb16
40bab8:	c6 03 0d             	movb   $0xd,(%ebx)
40babb:	43                   	inc    %ebx
40babc:	89 45 10             	mov    %eax,0x10(%ebp)
40babf:	eb 73                	jmp    0x40bb34
40bac1:	8d 45 f4             	lea    -0xc(%ebp),%eax
40bac4:	6a 00                	push   $0x0
40bac6:	50                   	push   %eax
40bac7:	ff 45 10             	incl   0x10(%ebp)
40baca:	8d 45 ff             	lea    -0x1(%ebp),%eax
40bacd:	6a 01                	push   $0x1