456ab9:	e8 dc 94 fc ff       	call   0x41ff9a
456abe:	8a 4d 0c             	mov    0xc(%ebp),%cl
456ac1:	5e                   	pop    %esi
456ac2:	88 48 18             	mov    %cl,0x18(%eax)
456ac5:	5d                   	pop    %ebp
456ac6:	c2 08 00             	ret    $0x8
456ac9:	55                   	push   %ebp
456aca:	8b ec                	mov    %esp,%ebp
456acc:	56                   	push   %esi
456acd:	57                   	push   %edi
456ace:	8b 7d 08             	mov    0x8(%ebp),%edi
456ad1:	8b f1                	mov    %ecx,%esi
456ad3:	66 8b 47 08          	mov    0x8(%edi),%ax
456ad7:	66 89 46 08          	mov    %ax,0x8(%esi)
456adb:	66 8b 47 0a          	mov    0xa(%edi),%ax
456adf:	66 89 46 0a          	mov    %ax,0xa(%esi)
456ae3:	e8 a2 f4 fa ff       	call   0x405f8a
456ae8:	84 c0                	test   %al,%al
456aea:	74 30                	je     0x456b1c
456aec:	6a 10                	push   $0x10
456aee:	e8 03 a5 fc ff       	call   0x420ff6
456af3:	8b d0                	mov    %eax,%edx
456af5:	59                   	pop    %ecx
456af6:	85 d2                	test   %edx,%edx
456af8:	74 1c                	je     0x456b16
456afa:	8b 07                	mov    (%edi),%eax
456afc:	8b 08                	mov    (%eax),%ecx
456afe:	89 0a                	mov    %ecx,(%edx)
456b00:	8b 48 04             	mov    0x4(%eax),%ecx
456b03:	89 4a 04             	mov    %ecx,0x4(%edx)
456b06:	8b 48 08             	mov    0x8(%eax),%ecx
456b09:	89 4a 08             	mov    %ecx,0x8(%edx)
456b0c:	8b 40 0c             	mov    0xc(%eax),%eax
456b0f:	89 42 0c             	mov    %eax,0xc(%edx)
456b12:	ff 00                	incl   (%eax)
456b14:	eb 02                	jmp    0x456b18
456b16:	33 d2                	xor    %edx,%edx
456b18:	89 16                	mov    %edx,(%esi)
456b1a:	eb 26                	jmp    0x456b42
456b1c:	0f b7 46 08          	movzwl 0x8(%esi),%eax
456b20:	66 83 f8 10          	cmp    $0x10,%ax
456b24:	75 0c                	jne    0x456b32
456b26:	8b 07                	mov    (%edi),%eax
456b28:	89 06                	mov    %eax,(%esi)
456b2a:	8b 47 04             	mov    0x4(%edi),%eax
456b2d:	89 46 04             	mov    %eax,0x4(%esi)
456b30:	eb 10                	jmp    0x456b42
456b32:	66 83 f8 20          	cmp    $0x20,%ax
456b36:	75 06                	jne    0x456b3e
456b38:	dd 07                	fldl   (%edi)
456b3a:	dd 1e                	fstpl  (%esi)
456b3c:	eb 04                	jmp    0x456b42
456b3e:	8b 07                	mov    (%edi),%eax
456b40:	89 06                	mov    %eax,(%esi)
456b42:	5f                   	pop    %edi
456b43:	8b c6                	mov    %esi,%eax
456b45:	5e                   	pop    %esi
456b46:	5d                   	pop    %ebp
456b47:	c2 04 00             	ret    $0x4
456b4a:	56                   	push   %esi
456b4b:	8b f1                	mov    %ecx,%esi
456b4d:	e8 a9 f3 fa ff       	call   0x405efb
456b52:	56                   	push   %esi
456b53:	e8 14 a5 fc ff       	call   0x42106c
456b58:	59                   	pop    %ecx
456b59:	8b c6                	mov    %esi,%eax
456b5b:	5e                   	pop    %esi
456b5c:	c2 04 00             	ret    $0x4
456b5f:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
456b63:	66 83 f8 41          	cmp    $0x41,%ax
456b67:	74 21                	je     0x456b8a
456b69:	66 83 f8 52          	cmp    $0x52,%ax
456b6d:	74 1b                	je     0x456b8a
456b6f:	66 83 f8 53          	cmp    $0x53,%ax
456b73:	74 15                	je     0x456b8a
456b75:	66 83 f8 54          	cmp    $0x54,%ax
456b79:	74 0f                	je     0x456b8a
456b7b:	66 83 f8 55          	cmp    $0x55,%ax
456b7f:	74 09                	je     0x456b8a
456b81:	66 83 f8 56          	cmp    $0x56,%ax
456b85:	74 03                	je     0x456b8a
456b87:	33 c0                	xor    %eax,%eax
456b89:	c3                   	ret
456b8a:	33 c0                	xor    %eax,%eax
456b8c:	40                   	inc    %eax
456b8d:	c3                   	ret
456b8e:	56                   	push   %esi
456b8f:	8b f1                	mov    %ecx,%esi
456b91:	8d 4e 20             	lea    0x20(%esi),%ecx
456b94:	e8 87 2e fb ff       	call   0x409a20
456b99:	8d 4e 10             	lea    0x10(%esi),%ecx
456b9c:	e8 7f 2e fb ff       	call   0x409a20
456ba1:	56                   	push   %esi
456ba2:	e8 c5 a4 fc ff       	call   0x42106c
456ba7:	59                   	pop    %ecx
456ba8:	8b c6                	mov    %esi,%eax
456baa:	5e                   	pop    %esi
456bab:	c2 04 00             	ret    $0x4
456bae:	55                   	push   %ebp
456baf:	8b ec                	mov    %esp,%ebp
456bb1:	56                   	push   %esi
456bb2:	57                   	push   %edi
456bb3:	ff 75 08             	push   0x8(%ebp)
456bb6:	b9 b0 67 4c 00       	mov    $0x4c67b0,%ecx
456bbb:	e8 52 ba fa ff       	call   0x402612
456bc0:	8b 0d 10 68 4c 00    	mov    0x4c6810,%ecx
456bc6:	6a 0f                	push   $0xf
456bc8:	8b 04 81             	mov    (%ecx,%eax,4),%eax
456bcb:	8b 30                	mov    (%eax),%esi
456bcd:	ff 15 28 f5 48 00    	call   *0x48f528
456bd3:	83 7e 4c ff          	cmpl   $0xffffffff,0x4c(%esi)
456bd7:	8b f8                	mov    %eax,%edi
456bd9:	74 03                	je     0x456bde
456bdb:	8b 7e 4c             	mov    0x4c(%esi),%edi
456bde:	57                   	push   %edi
456bdf:	ff 75 0c             	push   0xc(%ebp)
456be2:	ff 15 40 f1 48 00    	call   *0x48f140
456be8:	6a 00                	push   $0x0
456bea:	57                   	push   %edi
456beb:	e8 e0 b6 fa ff       	call   0x4022d0
456bf0:	5f                   	pop    %edi
456bf1:	5e                   	pop    %esi
456bf2:	5d                   	pop    %ebp
456bf3:	c2 10 00             	ret    $0x10
456bf6:	55                   	push   %ebp
456bf7:	8b ec                	mov    %esp,%ebp
456bf9:	57                   	push   %edi
456bfa:	8d 79 2c             	lea    0x2c(%ecx),%edi
456bfd:	83 3f 00             	cmpl   $0x0,(%edi)
456c00:	74 2e                	je     0x456c30
456c02:	8b 41 30             	mov    0x30(%ecx),%eax
456c05:	8b 4d 08             	mov    0x8(%ebp),%ecx
456c08:	56                   	push   %esi
456c09:	8b 30                	mov    (%eax),%esi
456c0b:	56                   	push   %esi
456c0c:	e8 8e f6 02 00       	call   0x48629f
456c11:	8b cf                	mov    %edi,%ecx
456c13:	e8 65 da fa ff       	call   0x40467d
456c18:	85 f6                	test   %esi,%esi
456c1a:	74 08                	je     0x456c24
456c1c:	51                   	push   %ecx
456c1d:	8b ce                	mov    %esi,%ecx
456c1f:	e8 41 da fa ff       	call   0x404665
456c24:	83 25 20 74 4c 00 00 	andl   $0x0,0x4c7420
456c2b:	b0 01                	mov    $0x1,%al
456c2d:	5e                   	pop    %esi
456c2e:	eb 2d                	jmp    0x456c5d
456c30:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
456c34:	75 25                	jne    0x456c5b
456c36:	83 3d 1c 69 4c 00 00 	cmpl   $0x0,0x4c691c
456c3d:	75 14                	jne    0x456c53
456c3f:	a1 20 74 4c 00       	mov    0x4c7420,%eax
456c44:	83 f8 64             	cmp    $0x64,%eax
456c47:	7d 0a                	jge    0x456c53
456c49:	40                   	inc    %eax
456c4a:	a3 20 74 4c 00       	mov    %eax,0x4c7420
456c4f:	6a 00                	push   $0x0
456c51:	eb 02                	jmp    0x456c55
456c53:	6a 0a                	push   $0xa
456c55:	ff 15 7c f1 48 00    	call   *0x48f17c
456c5b:	32 c0                	xor    %al,%al
456c5d:	5f                   	pop    %edi
456c5e:	5d                   	pop    %ebp
456c5f:	c2 04 00             	ret    $0x4
456c62:	55                   	push   %ebp
456c63:	8b ec                	mov    %esp,%ebp
456c65:	56                   	push   %esi
456c66:	8b f1                	mov    %ecx,%esi
456c68:	8b 46 0c             	mov    0xc(%esi),%eax
456c6b:	39 46 08             	cmp    %eax,0x8(%esi)
456c6e:	75 50                	jne    0x456cc0
456c70:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
456c73:	6a 08                	push   $0x8
456c75:	58                   	pop    %eax
456c76:	3b c8                	cmp    %eax,%ecx
456c78:	72 02                	jb     0x456c7c
456c7a:	8b c1                	mov    %ecx,%eax
456c7c:	57                   	push   %edi
456c7d:	33 c9                	xor    %ecx,%ecx
456c7f:	89 46 0c             	mov    %eax,0xc(%esi)
456c82:	6a 04                	push   $0x4
456c84:	5a                   	pop    %edx
456c85:	f7 e2                	mul    %edx
456c87:	0f 90 c1             	seto   %cl
456c8a:	f7 d9                	neg    %ecx
456c8c:	0b c8                	or     %eax,%ecx
456c8e:	51                   	push   %ecx
456c8f:	e8 62 a3 fc ff       	call   0x420ff6
456c94:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
456c98:	8b f8                	mov    %eax,%edi
456c9a:	59                   	pop    %ecx
456c9b:	74 1f                	je     0x456cbc
456c9d:	8b 46 08             	mov    0x8(%esi),%eax
456ca0:	85 c0                	test   %eax,%eax
456ca2:	74 18                	je     0x456cbc
456ca4:	c1 e0 02             	shl    $0x2,%eax
456ca7:	50                   	push   %eax
456ca8:	ff 76 04             	push   0x4(%esi)
456cab:	57                   	push   %edi
456cac:	e8 cf a3 fc ff       	call   0x421080
456cb1:	ff 76 04             	push   0x4(%esi)
456cb4:	e8 b3 a3 fc ff       	call   0x42106c
456cb9:	83 c4 10             	add    $0x10,%esp
456cbc:	89 7e 04             	mov    %edi,0x4(%esi)
456cbf:	5f                   	pop    %edi
456cc0:	6a 01                	push   $0x1
456cc2:	e8 2f a3 fc ff       	call   0x420ff6
456cc7:	8b d0                	mov    %eax,%edx
456cc9:	59                   	pop    %ecx
456cca:	85 d2                	test   %edx,%edx
456ccc:	74 09                	je     0x456cd7
456cce:	8b 4d 08             	mov    0x8(%ebp),%ecx
456cd1:	8a 09                	mov    (%ecx),%cl
456cd3:	88 0a                	mov    %cl,(%edx)
456cd5:	eb 02                	jmp    0x456cd9
456cd7:	33 d2                	xor    %edx,%edx
456cd9:	8b 4e 08             	mov    0x8(%esi),%ecx
456cdc:	8b 46 04             	mov    0x4(%esi),%eax
456cdf:	89 14 88             	mov    %edx,(%eax,%ecx,4)
456ce2:	ff 46 08             	incl   0x8(%esi)
456ce5:	5e                   	pop    %esi
456ce6:	5d                   	pop    %ebp
456ce7:	c2 04 00             	ret    $0x4
456cea:	55                   	push   %ebp
456ceb:	8b ec                	mov    %esp,%ebp
456ced:	8b 01                	mov    (%ecx),%eax
456cef:	85 c0                	test   %eax,%eax
456cf1:	74 05                	je     0x456cf8
456cf3:	8b 40 04             	mov    0x4(%eax),%eax
456cf6:	89 01                	mov    %eax,(%ecx)
456cf8:	8b 45 08             	mov    0x8(%ebp),%eax
456cfb:	8b 09                	mov    (%ecx),%ecx
456cfd:	89 08                	mov    %ecx,(%eax)
456cff:	5d                   	pop    %ebp
456d00:	c2 04 00             	ret    $0x4
456d03:	55                   	push   %ebp
456d04:	8b ec                	mov    %esp,%ebp
456d06:	56                   	push   %esi
456d07:	8b f1                	mov    %ecx,%esi
456d09:	57                   	push   %edi
456d0a:	8b 16                	mov    (%esi),%edx
456d0c:	8b 8a 0c 01 00 00    	mov    0x10c(%edx),%ecx
456d12:	85 c9                	test   %ecx,%ecx
456d14:	0f 84 d1 00 00 00    	je     0x456deb
456d1a:	8b 7d 08             	mov    0x8(%ebp),%edi
456d1d:	8b 07                	mov    (%edi),%eax
456d1f:	3b 88 0c 01 00 00    	cmp    0x10c(%eax),%ecx
456d25:	0f 85 c0 00 00 00    	jne    0x456deb
456d2b:	53                   	push   %ebx
456d2c:	33 db                	xor    %ebx,%ebx
456d2e:	85 c9                	test   %ecx,%ecx
456d30:	7e 1d                	jle    0x456d4f
456d32:	b9 10 01 00 00       	mov    $0x110,%ecx
456d37:	83 24 11 00          	andl   $0x0,(%ecx,%edx,1)
456d3b:	8b 07                	mov    (%edi),%eax
456d3d:	83 24 01 00          	andl   $0x0,(%ecx,%eax,1)
456d41:	43                   	inc    %ebx
456d42:	8b 16                	mov    (%esi),%edx
456d44:	8d 49 04             	lea    0x4(%ecx),%ecx
456d47:	3b 9a 0c 01 00 00    	cmp    0x10c(%edx),%ebx
456d4d:	7c e8                	jl     0x456d37
456d4f:	8b cf                	mov    %edi,%ecx
456d51:	e8 48 f7 ff ff       	call   0x45649e
456d56:	85 c0                	test   %eax,%eax
456d58:	78 25                	js     0x456d7f
456d5a:	8b 0f                	mov    (%edi),%ecx
456d5c:	8b 49 04             	mov    0x4(%ecx),%ecx
456d5f:	8b 1c 81             	mov    (%ecx,%eax,4),%ebx
456d62:	85 db                	test   %ebx,%ebx
456d64:	74 19                	je     0x456d7f
456d66:	6a 00                	push   $0x0
456d68:	6a 02                	push   $0x2
456d6a:	56                   	push   %esi
456d6b:	e8 30 21 fb ff       	call   0x408ea0
456d70:	83 c4 0c             	add    $0xc,%esp
456d73:	85 c0                	test   %eax,%eax
456d75:	74 08                	je     0x456d7f
456d77:	53                   	push   %ebx
456d78:	8b c8                	mov    %eax,%ecx
456d7a:	e8 1d 31 fb ff       	call   0x409e9c
456d7f:	8b 06                	mov    (%esi),%eax
456d81:	33 c9                	xor    %ecx,%ecx
456d83:	89 4d 08             	mov    %ecx,0x8(%ebp)
456d86:	39 88 0c 01 00 00    	cmp    %ecx,0x10c(%eax)
456d8c:	7e 4a                	jle    0x456dd8
456d8e:	bb 10 01 00 00       	mov    $0x110,%ebx
456d93:	8b 06                	mov    (%esi),%eax
456d95:	8b ce                	mov    %esi,%ecx
456d97:	ff 04 03             	incl   (%ebx,%eax,1)
456d9a:	8b 07                	mov    (%edi),%eax
456d9c:	ff 04 03             	incl   (%ebx,%eax,1)
456d9f:	e8 bd f6 ff ff       	call   0x456461
456da4:	84 c0                	test   %al,%al
456da6:	74 0b                	je     0x456db3
456da8:	8b cf                	mov    %edi,%ecx
456daa:	e8 b2 f6 ff ff       	call   0x456461
456daf:	84 c0                	test   %al,%al
456db1:	75 22                	jne    0x456dd5
456db3:	8b 06                	mov    (%esi),%eax
456db5:	8b 4d 08             	mov    0x8(%ebp),%ecx
456db8:	83 24 03 00          	andl   $0x0,(%ebx,%eax,1)
456dbc:	8b 07                	mov    (%edi),%eax
456dbe:	83 24 03 00          	andl   $0x0,(%ebx,%eax,1)
456dc2:	41                   	inc    %ecx
456dc3:	8b 06                	mov    (%esi),%eax
456dc5:	83 c3 04             	add    $0x4,%ebx
456dc8:	89 4d 08             	mov    %ecx,0x8(%ebp)
456dcb:	3b 88 0c 01 00 00    	cmp    0x10c(%eax),%ecx
456dd1:	7c c0                	jl     0x456d93
456dd3:	eb 03                	jmp    0x456dd8
456dd5:	8b 4d 08             	mov    0x8(%ebp),%ecx
456dd8:	8b 06                	mov    (%esi),%eax
456dda:	3b 88 0c 01 00 00    	cmp    0x10c(%eax),%ecx
456de0:	0f 8c 69 ff ff ff    	jl     0x456d4f
456de6:	b0 01                	mov    $0x1,%al
456de8:	5b                   	pop    %ebx
456de9:	eb 02                	jmp    0x456ded
456deb:	32 c0                	xor    %al,%al
456ded:	5f                   	pop    %edi
456dee:	5e                   	pop    %esi
456def:	5d                   	pop    %ebp
456df0:	c2 04 00             	ret    $0x4
456df3:	55                   	push   %ebp
456df4:	8b ec                	mov    %esp,%ebp
456df6:	83 ec 30             	sub    $0x30,%esp
456df9:	53                   	push   %ebx
456dfa:	56                   	push   %esi
456dfb:	57                   	push   %edi
456dfc:	8b f1                	mov    %ecx,%esi
456dfe:	33 db                	xor    %ebx,%ebx
456e00:	56                   	push   %esi
456e01:	89 5d f8             	mov    %ebx,-0x8(%ebp)
456e04:	ff 15 7c f4 48 00    	call   *0x48f47c
456e0a:	8b 7d 08             	mov    0x8(%ebp),%edi
456e0d:	89 5e 08             	mov    %ebx,0x8(%esi)
456e10:	89 5e 0c             	mov    %ebx,0xc(%esi)
456e13:	8b 47 0c             	mov    0xc(%edi),%eax
456e16:	8d 48 ff             	lea    -0x1(%eax),%ecx
456e19:	83 f9 0e             	cmp    $0xe,%ecx
456e1c:	0f 87 fb 01 00 00    	ja     0x45701d
456e22:	ff 24 8d 2b 70 45 00 	jmp    *0x45702b(,%ecx,4)
456e29:	6a 0b                	push   $0xb
456e2b:	58                   	pop    %eax
456e2c:	8b cf                	mov    %edi,%ecx
456e2e:	66 89 06             	mov    %ax,(%esi)
456e31:	e8 1d 2e fb ff       	call   0x409c53
456e36:	84 c0                	test   %al,%al
456e38:	74 05                	je     0x456e3f
456e3a:	83 c8 ff             	or     $0xffffffff,%eax
456e3d:	eb 02                	jmp    0x456e41