4069fe:	3b 59 04             	cmp    0x4(%ecx),%ebx
406a01:	73 53                	jae    0x406a56
406a03:	83 fe ff             	cmp    $0xffffffff,%esi
406a06:	74 47                	je     0x406a4f
406a08:	8d 04 33             	lea    (%ebx,%esi,1),%eax
406a0b:	3b 41 04             	cmp    0x4(%ecx),%eax
406a0e:	77 3f                	ja     0x406a4f
406a10:	8b cf                	mov    %edi,%ecx
406a12:	e8 d3 00 00 00       	call   0x406aea
406a17:	8b cf                	mov    %edi,%ecx
406a19:	84 c0                	test   %al,%al
406a1b:	0f 85 cd b5 06 00    	jne    0x471fee
406a21:	56                   	push   %esi
406a22:	e8 42 59 00 00       	call   0x40c369
406a27:	8b 45 08             	mov    0x8(%ebp),%eax
406a2a:	89 77 04             	mov    %esi,0x4(%edi)
406a2d:	8b 00                	mov    (%eax),%eax
406a2f:	03 f6                	add    %esi,%esi
406a31:	56                   	push   %esi
406a32:	8d 04 58             	lea    (%eax,%ebx,2),%eax
406a35:	50                   	push   %eax
406a36:	ff 37                	push   (%edi)
406a38:	e8 43 84 01 00       	call   0x41ee80
406a3d:	8b 07                	mov    (%edi),%eax
406a3f:	83 c4 0c             	add    $0xc,%esp
406a42:	33 c9                	xor    %ecx,%ecx
406a44:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
406a48:	5f                   	pop    %edi
406a49:	5e                   	pop    %esi
406a4a:	5b                   	pop    %ebx
406a4b:	5d                   	pop    %ebp
406a4c:	c2 0c 00             	ret    $0xc
406a4f:	8b 71 04             	mov    0x4(%ecx),%esi
406a52:	2b f3                	sub    %ebx,%esi
406a54:	eb ba                	jmp    0x406a10
406a56:	6a ff                	push   $0xffffffff
406a58:	6a 00                	push   $0x0
406a5a:	8b cf                	mov    %edi,%ecx
406a5c:	e8 2a 47 00 00       	call   0x40b18b
406a61:	eb e5                	jmp    0x406a48
406a63:	55                   	push   %ebp
406a64:	8b ec                	mov    %esp,%ebp
406a66:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406a6a:	56                   	push   %esi
406a6b:	8b f1                	mov    %ecx,%esi
406a6d:	74 70                	je     0x406adf
406a6f:	53                   	push   %ebx
406a70:	ff 75 08             	push   0x8(%ebp)
406a73:	e8 63 a2 01 00       	call   0x420cdb
406a78:	59                   	pop    %ecx
406a79:	8b d8                	mov    %eax,%ebx
406a7b:	8b ce                	mov    %esi,%ecx
406a7d:	89 5e 04             	mov    %ebx,0x4(%esi)
406a80:	e8 65 00 00 00       	call   0x406aea
406a85:	8b ce                	mov    %esi,%ecx
406a87:	84 c0                	test   %al,%al
406a89:	74 4c                	je     0x406ad7
406a8b:	8b 46 0c             	mov    0xc(%esi),%eax
406a8e:	ff 08                	decl   (%eax)
406a90:	e8 b5 00 00 00       	call   0x406b4a
406a95:	8b 46 04             	mov    0x4(%esi),%eax
406a98:	40                   	inc    %eax
406a99:	50                   	push   %eax
406a9a:	e8 57 00 00 00       	call   0x406af6
406a9f:	33 c9                	xor    %ecx,%ecx
406aa1:	6a 02                	push   $0x2
406aa3:	5a                   	pop    %edx
406aa4:	89 46 08             	mov    %eax,0x8(%esi)
406aa7:	f7 e2                	mul    %edx
406aa9:	0f 90 c1             	seto   %cl
406aac:	f7 d9                	neg    %ecx
406aae:	0b c8                	or     %eax,%ecx
406ab0:	51                   	push   %ecx
406ab1:	e8 bf 83 01 00       	call   0x41ee75
406ab6:	59                   	pop    %ecx
406ab7:	89 06                	mov    %eax,(%esi)
406ab9:	8b 46 04             	mov    0x4(%esi),%eax
406abc:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
406ac3:	50                   	push   %eax
406ac4:	ff 75 08             	push   0x8(%ebp)
406ac7:	ff 36                	push   (%esi)
406ac9:	e8 b2 83 01 00       	call   0x41ee80
406ace:	83 c4 0c             	add    $0xc,%esp
406ad1:	5b                   	pop    %ebx
406ad2:	5e                   	pop    %esi
406ad3:	5d                   	pop    %ebp
406ad4:	c2 04 00             	ret    $0x4
406ad7:	53                   	push   %ebx
406ad8:	e8 8c 58 00 00       	call   0x40c369
406add:	eb da                	jmp    0x406ab9
406adf:	6a ff                	push   $0xffffffff
406ae1:	6a 00                	push   $0x0
406ae3:	e8 a3 46 00 00       	call   0x40b18b
406ae8:	eb e8                	jmp    0x406ad2
406aea:	8b 49 0c             	mov    0xc(%ecx),%ecx
406aed:	33 c0                	xor    %eax,%eax
406aef:	83 39 01             	cmpl   $0x1,(%ecx)
406af2:	0f 9f c0             	setg   %al
406af5:	c3                   	ret
406af6:	55                   	push   %ebp
406af7:	8b ec                	mov    %esp,%ebp
406af9:	8b 45 08             	mov    0x8(%ebp),%eax
406afc:	85 c0                	test   %eax,%eax
406afe:	74 0a                	je     0x406b0a
406b00:	83 c0 07             	add    $0x7,%eax
406b03:	83 e0 f8             	and    $0xfffffff8,%eax
406b06:	5d                   	pop    %ebp
406b07:	c2 04 00             	ret    $0x4
406b0a:	6a 08                	push   $0x8
406b0c:	58                   	pop    %eax
406b0d:	eb f7                	jmp    0x406b06
406b0f:	55                   	push   %ebp
406b10:	8b ec                	mov    %esp,%ebp
406b12:	8b 45 08             	mov    0x8(%ebp),%eax
406b15:	56                   	push   %esi
406b16:	8b f1                	mov    %ecx,%esi
406b18:	33 c9                	xor    %ecx,%ecx
406b1a:	83 66 04 00          	andl   $0x0,0x4(%esi)
406b1e:	40                   	inc    %eax
406b1f:	6a 02                	push   $0x2
406b21:	5a                   	pop    %edx
406b22:	89 46 08             	mov    %eax,0x8(%esi)
406b25:	f7 e2                	mul    %edx
406b27:	0f 90 c1             	seto   %cl
406b2a:	f7 d9                	neg    %ecx
406b2c:	0b c8                	or     %eax,%ecx
406b2e:	51                   	push   %ecx
406b2f:	e8 b6 89 01 00       	call   0x41f4ea
406b34:	59                   	pop    %ecx
406b35:	33 c9                	xor    %ecx,%ecx
406b37:	89 06                	mov    %eax,(%esi)
406b39:	66 89 08             	mov    %cx,(%eax)
406b3c:	8b ce                	mov    %esi,%ecx
406b3e:	e8 07 00 00 00       	call   0x406b4a
406b43:	8b c6                	mov    %esi,%eax
406b45:	5e                   	pop    %esi
406b46:	5d                   	pop    %ebp
406b47:	c2 04 00             	ret    $0x4
406b4a:	56                   	push   %esi
406b4b:	6a 04                	push   $0x4
406b4d:	8b f1                	mov    %ecx,%esi
406b4f:	e8 96 89 01 00       	call   0x41f4ea
406b54:	59                   	pop    %ecx
406b55:	85 c0                	test   %eax,%eax
406b57:	74 0b                	je     0x406b64
406b59:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
406b5f:	89 46 0c             	mov    %eax,0xc(%esi)
406b62:	5e                   	pop    %esi
406b63:	c3                   	ret
406b64:	33 c0                	xor    %eax,%eax
406b66:	eb f7                	jmp    0x406b5f
406b68:	55                   	push   %ebp
406b69:	8b ec                	mov    %esp,%ebp
406b6b:	56                   	push   %esi
406b6c:	8b f1                	mov    %ecx,%esi
406b6e:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
406b72:	74 3f                	je     0x406bb3
406b74:	e8 a7 c0 00 00       	call   0x412c20
406b79:	6a 10                	push   $0x10
406b7b:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
406b82:	e8 63 89 01 00       	call   0x41f4ea
406b87:	8b d0                	mov    %eax,%edx
406b89:	59                   	pop    %ecx
406b8a:	85 d2                	test   %edx,%edx
406b8c:	74 32                	je     0x406bc0
406b8e:	8b 45 08             	mov    0x8(%ebp),%eax
406b91:	8b 08                	mov    (%eax),%ecx
406b93:	89 0a                	mov    %ecx,(%edx)
406b95:	8b 48 04             	mov    0x4(%eax),%ecx
406b98:	89 4a 04             	mov    %ecx,0x4(%edx)
406b9b:	8b 48 08             	mov    0x8(%eax),%ecx
406b9e:	89 4a 08             	mov    %ecx,0x8(%edx)
406ba1:	8b 40 0c             	mov    0xc(%eax),%eax
406ba4:	89 42 0c             	mov    %eax,0xc(%edx)
406ba7:	ff 00                	incl   (%eax)
406ba9:	89 56 08             	mov    %edx,0x8(%esi)
406bac:	8b c6                	mov    %esi,%eax
406bae:	5e                   	pop    %esi
406baf:	5d                   	pop    %ebp
406bb0:	c2 04 00             	ret    $0x4
406bb3:	ff 75 08             	push   0x8(%ebp)
406bb6:	8b 4e 08             	mov    0x8(%esi),%ecx
406bb9:	e8 2f 03 00 00       	call   0x406eed
406bbe:	eb ec                	jmp    0x406bac
406bc0:	33 d2                	xor    %edx,%edx
406bc2:	eb e5                	jmp    0x406ba9
406bc4:	55                   	push   %ebp
406bc5:	8b ec                	mov    %esp,%ebp
406bc7:	83 ec 0c             	sub    $0xc,%esp
406bca:	53                   	push   %ebx
406bcb:	56                   	push   %esi
406bcc:	57                   	push   %edi
406bcd:	8b c2                	mov    %edx,%eax
406bcf:	33 ff                	xor    %edi,%edi
406bd1:	83 ce ff             	or     $0xffffffff,%esi
406bd4:	89 45 f4             	mov    %eax,-0xc(%ebp)
406bd7:	8b d9                	mov    %ecx,%ebx
406bd9:	89 30                	mov    %esi,(%eax)
406bdb:	c7 45 fc 7d 00 00 00 	movl   $0x7d,-0x4(%ebp)
406be2:	0f b7 03             	movzwl (%ebx),%eax
406be5:	ba 86 00 00 00       	mov    $0x86,%edx
406bea:	8d 4a ff             	lea    -0x1(%edx),%ecx
406bed:	66 3b c1             	cmp    %cx,%ax
406bf0:	74 7a                	je     0x406c6c
406bf2:	83 c1 05             	add    $0x5,%ecx
406bf5:	66 3b c1             	cmp    %cx,%ax
406bf8:	74 72                	je     0x406c6c
406bfa:	66 3b c2             	cmp    %dx,%ax
406bfd:	74 6d                	je     0x406c6c
406bff:	8d 4a 05             	lea    0x5(%edx),%ecx
406c02:	66 3b c1             	cmp    %cx,%ax
406c05:	74 65                	je     0x406c6c
406c07:	33 c0                	xor    %eax,%eax
406c09:	8d 40 02             	lea    0x2(%eax),%eax
406c0c:	33 d2                	xor    %edx,%edx
406c0e:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
406c11:	42                   	inc    %edx
406c12:	e8 fd 1e 00 00       	call   0x408b14
406c17:	8b c8                	mov    %eax,%ecx
406c19:	0f b7 11             	movzwl (%ecx),%edx
406c1c:	8b c2                	mov    %edx,%eax
406c1e:	83 f8 31             	cmp    $0x31,%eax
406c21:	7f 1f                	jg     0x406c42
406c23:	83 f8 30             	cmp    $0x30,%eax
406c26:	7d 4c                	jge    0x406c74
406c28:	83 f8 1d             	cmp    $0x1d,%eax
406c2b:	74 34                	je     0x406c61
406c2d:	83 f8 1e             	cmp    $0x1e,%eax
406c30:	74 42                	je     0x406c74
406c32:	83 f8 22             	cmp    $0x22,%eax
406c35:	0f 8f 13 bc 07 00    	jg     0x48284e
406c3b:	33 c0                	xor    %eax,%eax
406c3d:	5f                   	pop    %edi
406c3e:	5e                   	pop    %esi
406c3f:	5b                   	pop    %ebx
406c40:	c9                   	leave
406c41:	c3                   	ret
406c42:	83 f8 36             	cmp    $0x36,%eax
406c45:	74 2a                	je     0x406c71
406c47:	83 f8 38             	cmp    $0x38,%eax
406c4a:	74 28                	je     0x406c74
406c4c:	83 f8 7d             	cmp    $0x7d,%eax
406c4f:	0f 84 3e bc 07 00    	je     0x482893
406c55:	3d 80 00 00 00       	cmp    $0x80,%eax
406c5a:	7e df                	jle    0x406c3b
406c5c:	e9 1d bc 07 00       	jmp    0x48287e
406c61:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406c65:	74 d4                	je     0x406c3b
406c67:	e9 06 bc 07 00       	jmp    0x482872
406c6c:	33 c0                	xor    %eax,%eax
406c6e:	40                   	inc    %eax
406c6f:	eb 98                	jmp    0x406c09
406c71:	83 c1 02             	add    $0x2,%ecx
406c74:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
406c78:	74 c1                	je     0x406c3b
406c7a:	85 f6                	test   %esi,%esi
406c7c:	0f 89 45 bc 07 00    	jns    0x4828c7
406c82:	33 f6                	xor    %esi,%esi
406c84:	46                   	inc    %esi
406c85:	e9 ee bb 07 00       	jmp    0x482878
406c8a:	55                   	push   %ebp
406c8b:	8b ec                	mov    %esp,%ebp
406c8d:	51                   	push   %ecx
406c8e:	53                   	push   %ebx
406c8f:	56                   	push   %esi
406c90:	57                   	push   %edi
406c91:	8b 7d 08             	mov    0x8(%ebp),%edi
406c94:	8b da                	mov    %edx,%ebx
406c96:	89 4d fc             	mov    %ecx,-0x4(%ebp)
406c99:	0f b7 01             	movzwl (%ecx),%eax
406c9c:	33 d2                	xor    %edx,%edx
406c9e:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
406ca5:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
406ca8:	e8 67 1e 00 00       	call   0x408b14
406cad:	8b f0                	mov    %eax,%esi
406caf:	0f b7 06             	movzwl (%esi),%eax
406cb2:	3d 87 00 00 00       	cmp    $0x87,%eax
406cb7:	0f 84 bf be 07 00    	je     0x482b7c
406cbd:	3d 83 00 00 00       	cmp    $0x83,%eax
406cc2:	0f 84 a5 00 00 00    	je     0x406d6d
406cc8:	3d 84 00 00 00       	cmp    $0x84,%eax
406ccd:	0f 84 9a 00 00 00    	je     0x406d6d
406cd3:	3d 88 00 00 00       	cmp    $0x88,%eax
406cd8:	0f 84 8f 00 00 00    	je     0x406d6d
406cde:	3d 89 00 00 00       	cmp    $0x89,%eax
406ce3:	0f 84 84 00 00 00    	je     0x406d6d
406ce9:	3d 85 00 00 00       	cmp    $0x85,%eax
406cee:	74 66                	je     0x406d56
406cf0:	3d 86 00 00 00       	cmp    $0x86,%eax
406cf5:	74 5f                	je     0x406d56
406cf7:	3d 8a 00 00 00       	cmp    $0x8a,%eax
406cfc:	74 58                	je     0x406d56
406cfe:	3d 8b 00 00 00       	cmp    $0x8b,%eax
406d03:	74 51                	je     0x406d56
406d05:	83 f8 7d             	cmp    $0x7d,%eax
406d08:	74 63                	je     0x406d6d
406d0a:	3d 81 00 00 00       	cmp    $0x81,%eax
406d0f:	74 3b                	je     0x406d4c
406d11:	3d 82 00 00 00       	cmp    $0x82,%eax
406d16:	74 34                	je     0x406d4c
406d18:	83 f8 55             	cmp    $0x55,%eax
406d1b:	0f 84 b6 be 07 00    	je     0x482bd7
406d21:	83 f8 56             	cmp    $0x56,%eax
406d24:	0f 84 ad be 07 00    	je     0x482bd7
406d2a:	83 f8 5e             	cmp    $0x5e,%eax
406d2d:	0f 84 a4 be 07 00    	je     0x482bd7
406d33:	83 f8 1b             	cmp    $0x1b,%eax
406d36:	0f 84 dd be 07 00    	je     0x482c19
406d3c:	83 f8 1c             	cmp    $0x1c,%eax
406d3f:	0f 84 d4 be 07 00    	je     0x482c19
406d45:	33 c0                	xor    %eax,%eax
406d47:	5f                   	pop    %edi
406d48:	5e                   	pop    %esi
406d49:	5b                   	pop    %ebx
406d4a:	c9                   	leave
406d4b:	c3                   	ret
406d4c:	8b 45 0c             	mov    0xc(%ebp),%eax
406d4f:	40                   	inc    %eax
406d50:	50                   	push   %eax
406d51:	e9 af be 07 00       	jmp    0x482c05
406d56:	0f b7 4e 04          	movzwl 0x4(%esi),%ecx
406d5a:	33 d2                	xor    %edx,%edx
406d5c:	42                   	inc    %edx
406d5d:	83 f9 20             	cmp    $0x20,%ecx
406d60:	0f 8d 98 be 07 00    	jge    0x482bfe
406d66:	d3 e2                	shl    %cl,%edx
406d68:	e9 91 be 07 00       	jmp    0x482bfe
406d6d:	ff 75 0c             	push   0xc(%ebp)
406d70:	e9 90 be 07 00       	jmp    0x482c05
406d75:	55                   	push   %ebp
406d76:	8b ec                	mov    %esp,%ebp
406d78:	51                   	push   %ecx
406d79:	53                   	push   %ebx
406d7a:	56                   	push   %esi
406d7b:	57                   	push   %edi
406d7c:	8b 7d 08             	mov    0x8(%ebp),%edi
406d7f:	89 55 fc             	mov    %edx,-0x4(%ebp)
406d82:	8b d9                	mov    %ecx,%ebx
406d84:	0f b7 03             	movzwl (%ebx),%eax
406d87:	33 d2                	xor    %edx,%edx
406d89:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
406d90:	8d 0c 43             	lea    (%ebx,%eax,2),%ecx
406d93:	e8 7c 1d 00 00       	call   0x408b14
406d98:	8b f0                	mov    %eax,%esi
406d9a:	0f b7 06             	movzwl (%esi),%eax
406d9d:	3d 83 00 00 00       	cmp    $0x83,%eax
406da2:	0f 84 ae 00 00 00    	je     0x406e56
406da8:	3d 84 00 00 00       	cmp    $0x84,%eax
406dad:	0f 84 a3 00 00 00    	je     0x406e56
406db3:	3d 88 00 00 00       	cmp    $0x88,%eax