404a7c:	75 13                	jne    0x404a91
404a7e:	8b 45 08             	mov    0x8(%ebp),%eax
404a81:	85 c0                	test   %eax,%eax
404a83:	74 05                	je     0x404a8a
404a85:	33 c9                	xor    %ecx,%ecx
404a87:	66 89 08             	mov    %cx,(%eax)
404a8a:	33 c0                	xor    %eax,%eax
404a8c:	5f                   	pop    %edi
404a8d:	5e                   	pop    %esi
404a8e:	5b                   	pop    %ebx
404a8f:	5d                   	pop    %ebp
404a90:	c3                   	ret
404a91:	8b 45 18             	mov    0x18(%ebp),%eax
404a94:	85 c0                	test   %eax,%eax
404a96:	75 0f                	jne    0x404aa7
404a98:	e8 8e 14 00 00       	call   0x405f2b
404a9d:	8b 70 08             	mov    0x8(%eax),%esi
404aa0:	e8 60 14 00 00       	call   0x405f05
404aa5:	eb 05                	jmp    0x404aac
404aa7:	8b 30                	mov    (%eax),%esi
404aa9:	8b 40 04             	mov    0x4(%eax),%eax
404aac:	89 45 0c             	mov    %eax,0xc(%ebp)
404aaf:	85 f6                	test   %esi,%esi
404ab1:	75 13                	jne    0x404ac6
404ab3:	8b 45 08             	mov    0x8(%ebp),%eax
404ab6:	85 c0                	test   %eax,%eax
404ab8:	74 07                	je     0x404ac1
404aba:	66 0f b6 0f          	movzbw (%edi),%cx
404abe:	66 89 08             	mov    %cx,(%eax)
404ac1:	33 c0                	xor    %eax,%eax
404ac3:	40                   	inc    %eax
404ac4:	eb c6                	jmp    0x404a8c
404ac6:	ff 75 0c             	push   0xc(%ebp)
404ac9:	e8 a8 fe ff ff       	call   0x404976
404ace:	8b 75 14             	mov    0x14(%ebp),%esi
404ad1:	83 3e 00             	cmpl   $0x0,(%esi)
404ad4:	59                   	pop    %ecx
404ad5:	8b d8                	mov    %eax,%ebx
404ad7:	74 54                	je     0x404b2d
404ad9:	8a 07                	mov    (%edi),%al
404adb:	53                   	push   %ebx
404adc:	88 46 01             	mov    %al,0x1(%esi)
404adf:	e8 05 14 00 00       	call   0x405ee9
404ae4:	83 f8 01             	cmp    $0x1,%eax
404ae7:	59                   	pop    %ecx
404ae8:	7e 2d                	jle    0x404b17
404aea:	33 c0                	xor    %eax,%eax
404aec:	39 45 08             	cmp    %eax,0x8(%ebp)
404aef:	0f 95 c0             	setne  %al
404af2:	50                   	push   %eax
404af3:	ff 75 08             	push   0x8(%ebp)
404af6:	6a 02                	push   $0x2
404af8:	56                   	push   %esi
404af9:	6a 09                	push   $0x9
404afb:	ff 75 0c             	push   0xc(%ebp)
404afe:	ff 15 80 a0 41 00    	call   *0x41a080
404b04:	85 c0                	test   %eax,%eax
404b06:	74 0f                	je     0x404b17
404b08:	83 26 00             	andl   $0x0,(%esi)
404b0b:	53                   	push   %ebx
404b0c:	e8 d8 13 00 00       	call   0x405ee9
404b11:	59                   	pop    %ecx
404b12:	e9 75 ff ff ff       	jmp    0x404a8c
404b17:	83 26 00             	andl   $0x0,(%esi)
404b1a:	e8 b6 0f 00 00       	call   0x405ad5
404b1f:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
404b25:	83 c8 ff             	or     $0xffffffff,%eax
404b28:	e9 5f ff ff ff       	jmp    0x404a8c
404b2d:	85 db                	test   %ebx,%ebx
404b2f:	75 13                	jne    0x404b44
404b31:	e8 09 31 00 00       	call   0x407c3f
404b36:	0f b6 0f             	movzbl (%edi),%ecx
404b39:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
404b3d:	25 00 80 00 00       	and    $0x8000,%eax
404b42:	eb 0e                	jmp    0x404b52
404b44:	0f b6 07             	movzbl (%edi),%eax
404b47:	8b 4b 04             	mov    0x4(%ebx),%ecx
404b4a:	0f b6 44 01 1d       	movzbl 0x1d(%ecx,%eax,1),%eax
404b4f:	83 e0 04             	and    $0x4,%eax
404b52:	85 c0                	test   %eax,%eax
404b54:	74 5b                	je     0x404bb1
404b56:	53                   	push   %ebx
404b57:	e8 8d 13 00 00       	call   0x405ee9
404b5c:	59                   	pop    %ecx
404b5d:	39 45 10             	cmp    %eax,0x10(%ebp)
404b60:	73 0c                	jae    0x404b6e
404b62:	8a 07                	mov    (%edi),%al
404b64:	6a fe                	push   $0xfffffffe
404b66:	88 06                	mov    %al,(%esi)
404b68:	58                   	pop    %eax
404b69:	e9 1e ff ff ff       	jmp    0x404a8c
404b6e:	53                   	push   %ebx
404b6f:	e8 75 13 00 00       	call   0x405ee9
404b74:	83 f8 01             	cmp    $0x1,%eax
404b77:	59                   	pop    %ecx
404b78:	7e 28                	jle    0x404ba2
404b7a:	33 c0                	xor    %eax,%eax
404b7c:	39 45 08             	cmp    %eax,0x8(%ebp)
404b7f:	0f 95 c0             	setne  %al
404b82:	50                   	push   %eax
404b83:	ff 75 08             	push   0x8(%ebp)
404b86:	53                   	push   %ebx
404b87:	e8 5d 13 00 00       	call   0x405ee9
404b8c:	59                   	pop    %ecx
404b8d:	50                   	push   %eax
404b8e:	57                   	push   %edi
404b8f:	6a 09                	push   $0x9
404b91:	ff 75 0c             	push   0xc(%ebp)
404b94:	ff 15 80 a0 41 00    	call   *0x41a080
404b9a:	85 c0                	test   %eax,%eax
404b9c:	0f 85 69 ff ff ff    	jne    0x404b0b
404ba2:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
404ba6:	0f 85 5f ff ff ff    	jne    0x404b0b
404bac:	e9 66 ff ff ff       	jmp    0x404b17
404bb1:	33 c0                	xor    %eax,%eax
404bb3:	39 45 08             	cmp    %eax,0x8(%ebp)
404bb6:	0f 95 c0             	setne  %al
404bb9:	50                   	push   %eax
404bba:	ff 75 08             	push   0x8(%ebp)
404bbd:	6a 01                	push   $0x1
404bbf:	57                   	push   %edi
404bc0:	6a 09                	push   $0x9
404bc2:	ff 75 0c             	push   0xc(%ebp)
404bc5:	ff 15 80 a0 41 00    	call   *0x41a080
404bcb:	85 c0                	test   %eax,%eax
404bcd:	0f 85 ee fe ff ff    	jne    0x404ac1
404bd3:	e9 42 ff ff ff       	jmp    0x404b1a
404bd8:	8b ff                	mov    %edi,%edi
404bda:	55                   	push   %ebp
404bdb:	8b ec                	mov    %esp,%ebp
404bdd:	56                   	push   %esi
404bde:	e8 48 13 00 00       	call   0x405f2b
404be3:	8b 40 04             	mov    0x4(%eax),%eax
404be6:	8b 75 08             	mov    0x8(%ebp),%esi
404be9:	89 06                	mov    %eax,(%esi)
404beb:	e8 15 13 00 00       	call   0x405f05
404bf0:	6a 02                	push   $0x2
404bf2:	68 00 01 00 00       	push   $0x100
404bf7:	89 46 04             	mov    %eax,0x4(%esi)
404bfa:	e8 a6 2f 00 00       	call   0x407ba5
404bff:	59                   	pop    %ecx
404c00:	59                   	pop    %ecx
404c01:	89 46 08             	mov    %eax,0x8(%esi)
404c04:	85 c0                	test   %eax,%eax
404c06:	74 1f                	je     0x404c27
404c08:	68 00 02 00 00       	push   $0x200
404c0d:	e8 2d 30 00 00       	call   0x407c3f
404c12:	50                   	push   %eax
404c13:	ff 76 08             	push   0x8(%esi)
404c16:	e8 e5 34 00 00       	call   0x408100
404c1b:	83 c4 0c             	add    $0xc,%esp
404c1e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
404c25:	eb 0c                	jmp    0x404c33
404c27:	e8 13 30 00 00       	call   0x407c3f
404c2c:	83 66 0c 00          	andl   $0x0,0xc(%esi)
404c30:	89 46 08             	mov    %eax,0x8(%esi)
404c33:	8b c6                	mov    %esi,%eax
404c35:	5e                   	pop    %esi
404c36:	5d                   	pop    %ebp
404c37:	c3                   	ret
404c38:	8b ff                	mov    %edi,%edi
404c3a:	55                   	push   %ebp
404c3b:	8b ec                	mov    %esp,%ebp
404c3d:	8b 45 0c             	mov    0xc(%ebp),%eax
404c40:	ff 30                	push   (%eax)
404c42:	ff 70 04             	push   0x4(%eax)
404c45:	8d 45 0c             	lea    0xc(%ebp),%eax
404c48:	50                   	push   %eax
404c49:	6a 01                	push   $0x1
404c4b:	8d 45 08             	lea    0x8(%ebp),%eax
404c4e:	50                   	push   %eax
404c4f:	6a 01                	push   $0x1
404c51:	6a 00                	push   $0x0
404c53:	e8 0d 38 00 00       	call   0x408465
404c58:	0f bf 4d 0c          	movswl 0xc(%ebp),%ecx
404c5c:	83 c4 1c             	add    $0x1c,%esp
404c5f:	f7 d8                	neg    %eax
404c61:	1b c0                	sbb    %eax,%eax
404c63:	23 c1                	and    %ecx,%eax
404c65:	5d                   	pop    %ebp
404c66:	c3                   	ret
404c67:	8b ff                	mov    %edi,%edi
404c69:	55                   	push   %ebp
404c6a:	8b ec                	mov    %esp,%ebp
404c6c:	8b 45 14             	mov    0x14(%ebp),%eax
404c6f:	ff 30                	push   (%eax)
404c71:	ff 70 04             	push   0x4(%eax)
404c74:	8b 45 0c             	mov    0xc(%ebp),%eax
404c77:	ff 75 10             	push   0x10(%ebp)
404c7a:	2b 45 08             	sub    0x8(%ebp),%eax
404c7d:	d1 f8                	sar    $1,%eax
404c7f:	50                   	push   %eax
404c80:	ff 75 08             	push   0x8(%ebp)
404c83:	6a 01                	push   $0x1
404c85:	6a 00                	push   $0x0
404c87:	e8 d9 37 00 00       	call   0x408465
404c8c:	8b 45 0c             	mov    0xc(%ebp),%eax
404c8f:	83 c4 1c             	add    $0x1c,%esp
404c92:	5d                   	pop    %ebp
404c93:	c3                   	ret
404c94:	8b ff                	mov    %edi,%edi
404c96:	55                   	push   %ebp
404c97:	8b ec                	mov    %esp,%ebp
404c99:	a1 5c b0 42 00       	mov    0x42b05c,%eax
404c9e:	85 c0                	test   %eax,%eax
404ca0:	75 06                	jne    0x404ca8
404ca2:	5d                   	pop    %ebp
404ca3:	e9 43 13 00 00       	jmp    0x405feb
404ca8:	8b 4d 08             	mov    0x8(%ebp),%ecx
404cab:	48                   	dec    %eax
404cac:	a3 5c b0 42 00       	mov    %eax,0x42b05c
404cb1:	89 0c 85 b0 07 43 00 	mov    %ecx,0x4307b0(,%eax,4)
404cb8:	5d                   	pop    %ebp
404cb9:	c3                   	ret
404cba:	eb 18                	jmp    0x404cd4
404cbc:	8b 0c 85 b0 07 43 00 	mov    0x4307b0(,%eax,4),%ecx
404cc3:	40                   	inc    %eax
404cc4:	a3 5c b0 42 00       	mov    %eax,0x42b05c
404cc9:	85 c9                	test   %ecx,%ecx
404ccb:	74 0c                	je     0x404cd9
404ccd:	ff 14 85 ac 07 43 00 	call   *0x4307ac(,%eax,4)
404cd4:	a1 5c b0 42 00       	mov    0x42b05c,%eax
404cd9:	83 f8 0a             	cmp    $0xa,%eax
404cdc:	72 de                	jb     0x404cbc
404cde:	c3                   	ret
404cdf:	8b ff                	mov    %edi,%edi
404ce1:	55                   	push   %ebp
404ce2:	8b ec                	mov    %esp,%ebp
404ce4:	ff 75 08             	push   0x8(%ebp)
404ce7:	ff 15 88 a0 41 00    	call   *0x41a088
404ced:	5d                   	pop    %ebp
404cee:	c3                   	ret
404cef:	8b ff                	mov    %edi,%edi
404cf1:	55                   	push   %ebp
404cf2:	8b ec                	mov    %esp,%ebp
404cf4:	ff 75 08             	push   0x8(%ebp)
404cf7:	ff 15 8c a0 41 00    	call   *0x41a08c
404cfd:	5d                   	pop    %ebp
404cfe:	c3                   	ret
404cff:	8b ff                	mov    %edi,%edi
404d01:	55                   	push   %ebp
404d02:	8b ec                	mov    %esp,%ebp
404d04:	ff 75 08             	push   0x8(%ebp)
404d07:	ff 15 90 a0 41 00    	call   *0x41a090
404d0d:	5d                   	pop    %ebp
404d0e:	c3                   	ret
404d0f:	8b ff                	mov    %edi,%edi
404d11:	55                   	push   %ebp
404d12:	8b ec                	mov    %esp,%ebp
404d14:	ff 75 08             	push   0x8(%ebp)
404d17:	ff 15 94 a0 41 00    	call   *0x41a094
404d1d:	5d                   	pop    %ebp
404d1e:	c3                   	ret
404d1f:	8b ff                	mov    %edi,%edi
404d21:	55                   	push   %ebp
404d22:	8b ec                	mov    %esp,%ebp
404d24:	8b 45 14             	mov    0x14(%ebp),%eax
404d27:	56                   	push   %esi
404d28:	57                   	push   %edi
404d29:	33 ff                	xor    %edi,%edi
404d2b:	3b c7                	cmp    %edi,%eax
404d2d:	74 47                	je     0x404d76
404d2f:	39 7d 08             	cmp    %edi,0x8(%ebp)
404d32:	75 1b                	jne    0x404d4f
404d34:	e8 9c 0d 00 00       	call   0x405ad5
404d39:	6a 16                	push   $0x16
404d3b:	5e                   	pop    %esi
404d3c:	89 30                	mov    %esi,(%eax)
404d3e:	57                   	push   %edi
404d3f:	57                   	push   %edi
404d40:	57                   	push   %edi
404d41:	57                   	push   %edi
404d42:	57                   	push   %edi
404d43:	e8 dd 04 00 00       	call   0x405225
404d48:	83 c4 14             	add    $0x14,%esp
404d4b:	8b c6                	mov    %esi,%eax
404d4d:	eb 29                	jmp    0x404d78
404d4f:	39 7d 10             	cmp    %edi,0x10(%ebp)
404d52:	74 e0                	je     0x404d34
404d54:	39 45 0c             	cmp    %eax,0xc(%ebp)
404d57:	73 0e                	jae    0x404d67
404d59:	e8 77 0d 00 00       	call   0x405ad5
404d5e:	6a 22                	push   $0x22
404d60:	59                   	pop    %ecx
404d61:	89 08                	mov    %ecx,(%eax)
404d63:	8b f1                	mov    %ecx,%esi
404d65:	eb d7                	jmp    0x404d3e
404d67:	50                   	push   %eax
404d68:	ff 75 10             	push   0x10(%ebp)
404d6b:	ff 75 08             	push   0x8(%ebp)
404d6e:	e8 3d 37 00 00       	call   0x4084b0
404d73:	83 c4 0c             	add    $0xc,%esp
404d76:	33 c0                	xor    %eax,%eax
404d78:	5f                   	pop    %edi
404d79:	5e                   	pop    %esi
404d7a:	5d                   	pop    %ebp
404d7b:	c3                   	ret
404d7c:	8b ff                	mov    %edi,%edi
404d7e:	55                   	push   %ebp
404d7f:	8b ec                	mov    %esp,%ebp
404d81:	83 ec 20             	sub    $0x20,%esp
404d84:	53                   	push   %ebx
404d85:	33 db                	xor    %ebx,%ebx
404d87:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
404d8a:	75 1d                	jne    0x404da9
404d8c:	e8 44 0d 00 00       	call   0x405ad5
404d91:	53                   	push   %ebx
404d92:	53                   	push   %ebx
404d93:	53                   	push   %ebx
404d94:	53                   	push   %ebx
404d95:	53                   	push   %ebx
404d96:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404d9c:	e8 84 04 00 00       	call   0x405225
404da1:	83 c4 14             	add    $0x14,%esp
404da4:	83 c8 ff             	or     $0xffffffff,%eax
404da7:	eb 4d                	jmp    0x404df6
404da9:	8b 45 08             	mov    0x8(%ebp),%eax
404dac:	3b c3                	cmp    %ebx,%eax
404dae:	74 dc                	je     0x404d8c
404db0:	56                   	push   %esi
404db1:	89 45 e8             	mov    %eax,-0x18(%ebp)
404db4:	89 45 e0             	mov    %eax,-0x20(%ebp)
404db7:	8d 45 10             	lea    0x10(%ebp),%eax
404dba:	50                   	push   %eax
404dbb:	53                   	push   %ebx
404dbc:	ff 75 0c             	push   0xc(%ebp)
404dbf:	8d 45 e0             	lea    -0x20(%ebp),%eax
404dc2:	50                   	push   %eax
404dc3:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
404dca:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
404dd1:	e8 49 3c 00 00       	call   0x408a1f
404dd6:	83 c4 10             	add    $0x10,%esp
404dd9:	ff 4d e4             	decl   -0x1c(%ebp)
404ddc:	8b f0                	mov    %eax,%esi
404dde:	78 07                	js     0x404de7
404de0:	8b 45 e0             	mov    -0x20(%ebp),%eax
404de3:	88 18                	mov    %bl,(%eax)
404de5:	eb 0c                	jmp    0x404df3
404de7:	8d 45 e0             	lea    -0x20(%ebp),%eax
404dea:	50                   	push   %eax
404deb:	53                   	push   %ebx
404dec:	e8 24 3a 00 00       	call   0x408815
404df1:	59                   	pop    %ecx
404df2:	59                   	pop    %ecx
404df3:	8b c6                	mov    %esi,%eax
404df5:	5e                   	pop    %esi
404df6:	5b                   	pop    %ebx
404df7:	c9                   	leave
404df8:	c3                   	ret
404df9:	8b ff                	mov    %edi,%edi