408b3c:	74 04                	je     0x408b42
408b3e:	6a 06                	push   $0x6
408b40:	eb 02                	jmp    0x408b44
408b42:	6a 0d                	push   $0xd
408b44:	58                   	pop    %eax
408b45:	89 46 24             	mov    %eax,0x24(%esi)
408b48:	eb 14                	jmp    0x408b5e
408b4a:	75 12                	jne    0x408b5e
408b4c:	8a 4e 2d             	mov    0x2d(%esi),%cl
408b4f:	80 f9 67             	cmp    $0x67,%cl
408b52:	74 05                	je     0x408b59
408b54:	80 f9 47             	cmp    $0x47,%cl
408b57:	75 05                	jne    0x408b5e
408b59:	89 56 24             	mov    %edx,0x24(%esi)
408b5c:	8b c2                	mov    %edx,%eax
408b5e:	53                   	push   %ebx
408b5f:	ff 76 08             	push   0x8(%esi)
408b62:	05 5d 01 00 00       	add    $0x15d,%eax
408b67:	8d 7e 3c             	lea    0x3c(%esi),%edi
408b6a:	50                   	push   %eax
408b6b:	8b cf                	mov    %edi,%ecx
408b6d:	e8 2b ea ff ff       	call   0x40759d
408b72:	84 c0                	test   %al,%al
408b74:	75 12                	jne    0x408b88
408b76:	8b cf                	mov    %edi,%ecx
408b78:	e8 08 ea ff ff       	call   0x407585
408b7d:	8d 98 a3 fe ff ff    	lea    -0x15d(%eax),%ebx
408b83:	89 5e 24             	mov    %ebx,0x24(%esi)
408b86:	eb 03                	jmp    0x408b8b
408b88:	8b 5e 24             	mov    0x24(%esi),%ebx
408b8b:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
408b91:	85 c0                	test   %eax,%eax
408b93:	75 02                	jne    0x408b97
408b95:	8b c7                	mov    %edi,%eax
408b97:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
408b9b:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
408b9f:	89 46 30             	mov    %eax,0x30(%esi)
408ba2:	8b 4e 10             	mov    0x10(%esi),%ecx
408ba5:	8d 41 08             	lea    0x8(%ecx),%eax
408ba8:	89 46 10             	mov    %eax,0x10(%esi)
408bab:	8b 01                	mov    (%ecx),%eax
408bad:	8b 49 04             	mov    0x4(%ecx),%ecx
408bb0:	89 45 ec             	mov    %eax,-0x14(%ebp)
408bb3:	0f be 46 2d          	movsbl 0x2d(%esi),%eax
408bb7:	89 4d f0             	mov    %ecx,-0x10(%ebp)
408bba:	8b cf                	mov    %edi,%ecx
408bbc:	89 45 fc             	mov    %eax,-0x4(%ebp)
408bbf:	e8 c1 e9 ff ff       	call   0x407585
408bc4:	8b cf                	mov    %edi,%ecx
408bc6:	89 45 f8             	mov    %eax,-0x8(%ebp)
408bc9:	e8 c4 ec ff ff       	call   0x407892
408bce:	8b cf                	mov    %edi,%ecx
408bd0:	89 45 f4             	mov    %eax,-0xc(%ebp)
408bd3:	e8 ad e9 ff ff       	call   0x407585
408bd8:	8b c8                	mov    %eax,%ecx
408bda:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
408be0:	85 c0                	test   %eax,%eax
408be2:	74 02                	je     0x408be6
408be4:	8b f8                	mov    %eax,%edi
408be6:	ff 76 08             	push   0x8(%esi)
408be9:	8d 45 ec             	lea    -0x14(%ebp),%eax
408bec:	6a 01                	push   $0x1
408bee:	ff 76 04             	push   0x4(%esi)
408bf1:	ff 36                	push   (%esi)
408bf3:	53                   	push   %ebx
408bf4:	ff 75 fc             	push   -0x4(%ebp)
408bf7:	ff 75 f8             	push   -0x8(%ebp)
408bfa:	ff 75 f4             	push   -0xc(%ebp)
408bfd:	51                   	push   %ecx
408bfe:	57                   	push   %edi
408bff:	50                   	push   %eax
408c00:	e8 af 4e 00 00       	call   0x40dab4
408c05:	8b 46 1c             	mov    0x1c(%esi),%eax
408c08:	83 c4 2c             	add    $0x2c,%esp
408c0b:	c1 e8 05             	shr    $0x5,%eax
408c0e:	5b                   	pop    %ebx
408c0f:	a8 01                	test   $0x1,%al
408c11:	74 24                	je     0x408c37
408c13:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
408c17:	75 1e                	jne    0x408c37
408c19:	8b 7e 08             	mov    0x8(%esi),%edi
408c1c:	80 7f 14 00          	cmpb   $0x0,0x14(%edi)
408c20:	75 07                	jne    0x408c29
408c22:	8b cf                	mov    %edi,%ecx
408c24:	e8 77 02 00 00       	call   0x408ea0
408c29:	8d 47 0c             	lea    0xc(%edi),%eax
408c2c:	50                   	push   %eax
408c2d:	ff 76 30             	push   0x30(%esi)
408c30:	e8 0e f6 ff ff       	call   0x408243
408c35:	59                   	pop    %ecx
408c36:	59                   	pop    %ecx
408c37:	8a 46 2d             	mov    0x2d(%esi),%al
408c3a:	3c 67                	cmp    $0x67,%al
408c3c:	74 04                	je     0x408c42
408c3e:	3c 47                	cmp    $0x47,%al
408c40:	75 28                	jne    0x408c6a
408c42:	8b 46 1c             	mov    0x1c(%esi),%eax
408c45:	c1 e8 05             	shr    $0x5,%eax
408c48:	a8 01                	test   $0x1,%al
408c4a:	75 1e                	jne    0x408c6a
408c4c:	8b 7e 08             	mov    0x8(%esi),%edi
408c4f:	80 7f 14 00          	cmpb   $0x0,0x14(%edi)
408c53:	75 07                	jne    0x408c5c
408c55:	8b cf                	mov    %edi,%ecx
408c57:	e8 44 02 00 00       	call   0x408ea0
408c5c:	8d 47 0c             	lea    0xc(%edi),%eax
408c5f:	50                   	push   %eax
408c60:	ff 76 30             	push   0x30(%esi)
408c63:	e8 40 f5 ff ff       	call   0x4081a8
408c68:	59                   	pop    %ecx
408c69:	59                   	pop    %ecx
408c6a:	8b 56 30             	mov    0x30(%esi),%edx
408c6d:	8a 02                	mov    (%edx),%al
408c6f:	3c 2d                	cmp    $0x2d,%al
408c71:	75 0a                	jne    0x408c7d
408c73:	83 4e 1c 40          	orl    $0x40,0x1c(%esi)
408c77:	42                   	inc    %edx
408c78:	89 56 30             	mov    %edx,0x30(%esi)
408c7b:	8a 02                	mov    (%edx),%al
408c7d:	3c 69                	cmp    $0x69,%al
408c7f:	74 0c                	je     0x408c8d
408c81:	3c 49                	cmp    $0x49,%al
408c83:	74 08                	je     0x408c8d
408c85:	3c 6e                	cmp    $0x6e,%al
408c87:	74 04                	je     0x408c8d
408c89:	3c 4e                	cmp    $0x4e,%al
408c8b:	75 08                	jne    0x408c95
408c8d:	83 66 1c f7          	andl   $0xfffffff7,0x1c(%esi)
408c91:	c6 46 2d 73          	movb   $0x73,0x2d(%esi)
408c95:	8d 7a 01             	lea    0x1(%edx),%edi
408c98:	8a 0a                	mov    (%edx),%cl
408c9a:	42                   	inc    %edx
408c9b:	84 c9                	test   %cl,%cl
408c9d:	75 f9                	jne    0x408c98
408c9f:	2b d7                	sub    %edi,%edx
408ca1:	b0 01                	mov    $0x1,%al
408ca3:	5f                   	pop    %edi
408ca4:	89 56 34             	mov    %edx,0x34(%esi)
408ca7:	5e                   	pop    %esi
408ca8:	c9                   	leave
408ca9:	c3                   	ret
408caa:	8b ff                	mov    %edi,%edi
408cac:	56                   	push   %esi
408cad:	8b f1                	mov    %ecx,%esi
408caf:	57                   	push   %edi
408cb0:	ff 76 28             	push   0x28(%esi)
408cb3:	0f b6 46 2d          	movzbl 0x2d(%esi),%eax
408cb7:	8d 7e 3c             	lea    0x3c(%esi),%edi
408cba:	50                   	push   %eax
408cbb:	ff 76 04             	push   0x4(%esi)
408cbe:	ff 36                	push   (%esi)
408cc0:	e8 8d e9 ff ff       	call   0x407652
408cc5:	83 c4 10             	add    $0x10,%esp
408cc8:	84 c0                	test   %al,%al
408cca:	74 3d                	je     0x408d09
408ccc:	8b 4e 10             	mov    0x10(%esi),%ecx
408ccf:	53                   	push   %ebx
408cd0:	8d 41 04             	lea    0x4(%ecx),%eax
408cd3:	89 46 10             	mov    %eax,0x10(%esi)
408cd6:	0f b7 19             	movzwl (%ecx),%ebx
408cd9:	8b cf                	mov    %edi,%ecx
408cdb:	e8 a5 e8 ff ff       	call   0x407585
408ce0:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
408ce6:	85 c9                	test   %ecx,%ecx
408ce8:	75 02                	jne    0x408cec
408cea:	8b cf                	mov    %edi,%ecx
408cec:	ff 76 08             	push   0x8(%esi)
408cef:	53                   	push   %ebx
408cf0:	50                   	push   %eax
408cf1:	51                   	push   %ecx
408cf2:	8d 46 34             	lea    0x34(%esi),%eax
408cf5:	50                   	push   %eax
408cf6:	e8 3a 4f 00 00       	call   0x40dc35
408cfb:	83 c4 14             	add    $0x14,%esp
408cfe:	5b                   	pop    %ebx
408cff:	85 c0                	test   %eax,%eax
408d01:	74 26                	je     0x408d29
408d03:	c6 46 2c 01          	movb   $0x1,0x2c(%esi)
408d07:	eb 20                	jmp    0x408d29
408d09:	8b 97 04 04 00 00    	mov    0x404(%edi),%edx
408d0f:	85 d2                	test   %edx,%edx
408d11:	75 02                	jne    0x408d15
408d13:	8b d7                	mov    %edi,%edx
408d15:	8b 4e 10             	mov    0x10(%esi),%ecx
408d18:	8d 41 04             	lea    0x4(%ecx),%eax
408d1b:	89 46 10             	mov    %eax,0x10(%esi)
408d1e:	8a 01                	mov    (%ecx),%al
408d20:	88 02                	mov    %al,(%edx)
408d22:	c7 46 34 01 00 00 00 	movl   $0x1,0x34(%esi)
408d29:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
408d2f:	85 c0                	test   %eax,%eax
408d31:	74 02                	je     0x408d35
408d33:	8b f8                	mov    %eax,%edi
408d35:	89 7e 30             	mov    %edi,0x30(%esi)
408d38:	b0 01                	mov    $0x1,%al
408d3a:	5f                   	pop    %edi
408d3b:	5e                   	pop    %esi
408d3c:	c2 04 00             	ret    $0x4
408d3f:	8b ff                	mov    %edi,%edi
408d41:	56                   	push   %esi
408d42:	8b f1                	mov    %ecx,%esi
408d44:	57                   	push   %edi
408d45:	8b 56 10             	mov    0x10(%esi),%edx
408d48:	8d 42 04             	lea    0x4(%edx),%eax
408d4b:	89 46 10             	mov    %eax,0x10(%esi)
408d4e:	8b 3a                	mov    (%edx),%edi
408d50:	e8 b4 51 00 00       	call   0x40df09
408d55:	85 c0                	test   %eax,%eax
408d57:	75 24                	jne    0x408d7d
408d59:	8b 46 08             	mov    0x8(%esi),%eax
408d5c:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
408d60:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
408d67:	33 c0                	xor    %eax,%eax
408d69:	ff 76 08             	push   0x8(%esi)
408d6c:	50                   	push   %eax
408d6d:	50                   	push   %eax
408d6e:	50                   	push   %eax
408d6f:	50                   	push   %eax
408d70:	50                   	push   %eax
408d71:	e8 d6 e6 ff ff       	call   0x40744c
408d76:	83 c4 18             	add    $0x18,%esp
408d79:	32 c0                	xor    %al,%al
408d7b:	eb 44                	jmp    0x408dc1
408d7d:	ff 76 28             	push   0x28(%esi)
408d80:	e8 dd fc ff ff       	call   0x408a62
408d85:	59                   	pop    %ecx
408d86:	83 e8 01             	sub    $0x1,%eax
408d89:	74 2b                	je     0x408db6
408d8b:	83 e8 01             	sub    $0x1,%eax
408d8e:	74 1d                	je     0x408dad
408d90:	48                   	dec    %eax
408d91:	83 e8 01             	sub    $0x1,%eax
408d94:	74 10                	je     0x408da6
408d96:	83 e8 04             	sub    $0x4,%eax
408d99:	75 be                	jne    0x408d59
408d9b:	8b 46 14             	mov    0x14(%esi),%eax
408d9e:	99                   	cltd
408d9f:	89 07                	mov    %eax,(%edi)
408da1:	89 57 04             	mov    %edx,0x4(%edi)
408da4:	eb 15                	jmp    0x408dbb
408da6:	8b 46 14             	mov    0x14(%esi),%eax
408da9:	89 07                	mov    %eax,(%edi)
408dab:	eb 0e                	jmp    0x408dbb
408dad:	66 8b 46 14          	mov    0x14(%esi),%ax
408db1:	66 89 07             	mov    %ax,(%edi)
408db4:	eb 05                	jmp    0x408dbb
408db6:	8a 46 14             	mov    0x14(%esi),%al
408db9:	88 07                	mov    %al,(%edi)
408dbb:	c6 46 2c 01          	movb   $0x1,0x2c(%esi)
408dbf:	b0 01                	mov    $0x1,%al
408dc1:	5f                   	pop    %edi
408dc2:	5e                   	pop    %esi
408dc3:	c3                   	ret
408dc4:	8b 51 1c             	mov    0x1c(%ecx),%edx
408dc7:	8b c2                	mov    %edx,%eax
408dc9:	c1 e8 05             	shr    $0x5,%eax
408dcc:	a8 01                	test   $0x1,%al
408dce:	74 09                	je     0x408dd9
408dd0:	81 ca 80 00 00 00    	or     $0x80,%edx
408dd6:	89 51 1c             	mov    %edx,0x1c(%ecx)
408dd9:	6a 00                	push   $0x0
408ddb:	e8 d0 ea ff ff       	call   0x4078b0
408de0:	c3                   	ret
408de1:	6a 01                	push   $0x1
408de3:	c7 41 24 08 00 00 00 	movl   $0x8,0x24(%ecx)
408dea:	c7 41 28 0a 00 00 00 	movl   $0xa,0x28(%ecx)
408df1:	e8 d4 ed ff ff       	call   0x407bca
408df6:	c3                   	ret
408df7:	8b ff                	mov    %edi,%edi
408df9:	53                   	push   %ebx
408dfa:	56                   	push   %esi
408dfb:	8b f1                	mov    %ecx,%esi
408dfd:	57                   	push   %edi
408dfe:	8b 56 10             	mov    0x10(%esi),%edx
408e01:	8d 42 04             	lea    0x4(%edx),%eax
408e04:	89 46 10             	mov    %eax,0x10(%esi)
408e07:	8b 5e 24             	mov    0x24(%esi),%ebx
408e0a:	8b 3a                	mov    (%edx),%edi
408e0c:	89 7e 30             	mov    %edi,0x30(%esi)
408e0f:	83 fb ff             	cmp    $0xffffffff,%ebx
408e12:	75 05                	jne    0x408e19
408e14:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
408e19:	ff 76 28             	push   0x28(%esi)
408e1c:	0f b6 46 2d          	movzbl 0x2d(%esi),%eax
408e20:	50                   	push   %eax
408e21:	ff 76 04             	push   0x4(%esi)
408e24:	ff 36                	push   (%esi)
408e26:	e8 27 e8 ff ff       	call   0x407652
408e2b:	83 c4 10             	add    $0x10,%esp
408e2e:	84 c0                	test   %al,%al
408e30:	74 19                	je     0x408e4b
408e32:	85 ff                	test   %edi,%edi
408e34:	75 08                	jne    0x408e3e
408e36:	bf b8 a1 41 00       	mov    $0x41a1b8,%edi
408e3b:	89 7e 30             	mov    %edi,0x30(%esi)
408e3e:	53                   	push   %ebx
408e3f:	57                   	push   %edi
408e40:	c6 46 38 01          	movb   $0x1,0x38(%esi)
408e44:	e8 56 e1 ff ff       	call   0x406f9f
408e49:	eb 13                	jmp    0x408e5e
408e4b:	85 ff                	test   %edi,%edi
408e4d:	75 08                	jne    0x408e57
408e4f:	bf c8 a1 41 00       	mov    $0x41a1c8,%edi
408e54:	89 7e 30             	mov    %edi,0x30(%esi)
408e57:	53                   	push   %ebx
408e58:	57                   	push   %edi
408e59:	e8 f7 de ff ff       	call   0x406d55
408e5e:	59                   	pop    %ecx
408e5f:	59                   	pop    %ecx
408e60:	5f                   	pop    %edi
408e61:	89 46 34             	mov    %eax,0x34(%esi)
408e64:	b0 01                	mov    $0x1,%al
408e66:	5e                   	pop    %esi
408e67:	5b                   	pop    %ebx
408e68:	c3                   	ret
408e69:	8b ff                	mov    %edi,%edi
408e6b:	55                   	push   %ebp
408e6c:	8b ec                	mov    %esp,%ebp
408e6e:	8b 01                	mov    (%ecx),%eax
408e70:	48                   	dec    %eax
408e71:	89 01                	mov    %eax,(%ecx)
408e73:	8a 4d 08             	mov    0x8(%ebp),%cl
408e76:	84 c9                	test   %cl,%cl
408e78:	74 14                	je     0x408e8e
408e7a:	38 08                	cmp    %cl,(%eax)
408e7c:	74 10                	je     0x408e8e
408e7e:	e8 ac 18 00 00       	call   0x40a72f
408e83:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
408e89:	e8 3b e6 ff ff       	call   0x4074c9
408e8e:	5d                   	pop    %ebp
408e8f:	c2 04 00             	ret    $0x4
408e92:	cc                   	int3
408e93:	cc                   	int3
408e94:	cc                   	int3
408e95:	cc                   	int3
408e96:	cc                   	int3
408e97:	cc                   	int3
408e98:	cc                   	int3
408e99:	cc                   	int3
408e9a:	cc                   	int3
408e9b:	cc                   	int3
408e9c:	cc                   	int3
408e9d:	cc                   	int3
408e9e:	cc                   	int3
408e9f:	cc                   	int3
408ea0:	8b ff                	mov    %edi,%edi
408ea2:	55                   	push   %ebp
408ea3:	8b ec                	mov    %esp,%ebp
408ea5:	51                   	push   %ecx
408ea6:	53                   	push   %ebx