454b54:	b9 ff 00 00 00       	mov    $0xff,%ecx
454b59:	66 3b c1             	cmp    %cx,%ax
454b5c:	0f 87 b9 38 fc ff    	ja     0x41841b
454b62:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454b69:	0f 84 ac 38 fc ff    	je     0x41841b
454b6f:	0f b7 46 04          	movzwl 0x4(%esi),%eax
454b73:	66 3b c1             	cmp    %cx,%ax
454b76:	0f 87 9f 38 fc ff    	ja     0x41841b
454b7c:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454b83:	0f 84 92 38 fc ff    	je     0x41841b
454b89:	6a 37                	push   $0x37
454b8b:	8b fb                	mov    %ebx,%edi
454b8d:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
454b94:	5a                   	pop    %edx
454b95:	83 c6 02             	add    $0x2,%esi
454b98:	0f b7 0e             	movzwl (%esi),%ecx
454b9b:	83 f9 61             	cmp    $0x61,%ecx
454b9e:	72 03                	jb     0x454ba3
454ba0:	83 e9 20             	sub    $0x20,%ecx
454ba3:	83 f9 41             	cmp    $0x41,%ecx
454ba6:	1b c0                	sbb    %eax,%eax
454ba8:	c1 e7 04             	shl    $0x4,%edi
454bab:	83 e0 f9             	and    $0xfffffff9,%eax
454bae:	03 c2                	add    %edx,%eax
454bb0:	2b f8                	sub    %eax,%edi
454bb2:	03 f9                	add    %ecx,%edi
454bb4:	ff 4d ec             	decl   -0x14(%ebp)
454bb7:	75 dc                	jne    0x454b95
454bb9:	e9 5d 38 fc ff       	jmp    0x41841b
454bbe:	f6 45 10 40          	testb  $0x40,0x10(%ebp)
454bc2:	0f 84 53 38 fc ff    	je     0x41841b
454bc8:	8b 45 08             	mov    0x8(%ebp),%eax
454bcb:	c7 00 03 00 00 00    	movl   $0x3,(%eax)
454bd1:	e9 45 38 fc ff       	jmp    0x41841b
454bd6:	66 83 7e 02 7b       	cmpw   $0x7b,0x2(%esi)
454bdb:	0f 85 ea 00 00 00    	jne    0x454ccb
454be1:	83 c6 04             	add    $0x4,%esi
454be4:	6a 7d                	push   $0x7d
454be6:	58                   	pop    %eax
454be7:	0f b7 16             	movzwl (%esi),%edx
454bea:	66 3b d0             	cmp    %ax,%dx
454bed:	74 74                	je     0x454c63
454bef:	b9 ff 00 00 00       	mov    $0xff,%ecx
454bf4:	8b fb                	mov    %ebx,%edi
454bf6:	66 3b d1             	cmp    %cx,%dx
454bf9:	77 5e                	ja     0x454c59
454bfb:	0f b7 06             	movzwl (%esi),%eax
454bfe:	6a 37                	push   $0x37
454c00:	5a                   	pop    %edx
454c01:	0f b7 c0             	movzwl %ax,%eax
454c04:	89 45 ec             	mov    %eax,-0x14(%ebp)
454c07:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454c0e:	74 46                	je     0x454c56
454c10:	83 c6 02             	add    $0x2,%esi
454c13:	85 ff                	test   %edi,%edi
454c15:	75 05                	jne    0x454c1c
454c17:	83 f8 30             	cmp    $0x30,%eax
454c1a:	74 32                	je     0x454c4e
454c1c:	83 f8 61             	cmp    $0x61,%eax
454c1f:	72 06                	jb     0x454c27
454c21:	83 e8 20             	sub    $0x20,%eax
454c24:	89 45 ec             	mov    %eax,-0x14(%ebp)
454c27:	83 f8 41             	cmp    $0x41,%eax
454c2a:	1b c0                	sbb    %eax,%eax
454c2c:	c1 e7 04             	shl    $0x4,%edi
454c2f:	83 e0 f9             	and    $0xfffffff9,%eax
454c32:	03 c2                	add    %edx,%eax
454c34:	2b f8                	sub    %eax,%edi
454c36:	8b 45 f4             	mov    -0xc(%ebp),%eax
454c39:	03 7d ec             	add    -0x14(%ebp),%edi
454c3c:	f7 d8                	neg    %eax
454c3e:	1b c0                	sbb    %eax,%eax
454c40:	25 00 00 10 00       	and    $0x100000,%eax
454c45:	05 ff ff 00 00       	add    $0xffff,%eax
454c4a:	3b f8                	cmp    %eax,%edi
454c4c:	77 32                	ja     0x454c80
454c4e:	0f b7 06             	movzwl (%esi),%eax
454c51:	66 3b c1             	cmp    %cx,%ax
454c54:	76 ab                	jbe    0x454c01
454c56:	6a 7d                	push   $0x7d
454c58:	58                   	pop    %eax
454c59:	66 39 06             	cmp    %ax,(%esi)
454c5c:	75 5f                	jne    0x454cbd
454c5e:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
454c61:	eb 35                	jmp    0x454c98
454c63:	8b 45 08             	mov    0x8(%ebp),%eax
454c66:	c7 00 56 00 00 00    	movl   $0x56,(%eax)
454c6c:	e9 aa 37 fc ff       	jmp    0x41841b
454c71:	0f b7 c0             	movzwl %ax,%eax
454c74:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454c7b:	74 0b                	je     0x454c88
454c7d:	83 c6 02             	add    $0x2,%esi
454c80:	0f b7 06             	movzwl (%esi),%eax
454c83:	66 3b c1             	cmp    %cx,%ax
454c86:	76 e9                	jbe    0x454c71
454c88:	8b 45 08             	mov    0x8(%ebp),%eax
454c8b:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
454c91:	e9 85 37 fc ff       	jmp    0x41841b
454c96:	85 c9                	test   %ecx,%ecx
454c98:	0f 84 7d 37 fc ff    	je     0x41841b
454c9e:	8d 87 00 28 ff ff    	lea    -0xd800(%edi),%eax
454ca4:	3d ff 07 00 00       	cmp    $0x7ff,%eax
454ca9:	0f 87 6c 37 fc ff    	ja     0x41841b
454caf:	8b 45 08             	mov    0x8(%ebp),%eax
454cb2:	c7 00 49 00 00 00    	movl   $0x49,(%eax)
454cb8:	e9 5e 37 fc ff       	jmp    0x41841b
454cbd:	8b 45 08             	mov    0x8(%ebp),%eax
454cc0:	c7 00 4f 00 00 00    	movl   $0x4f,(%eax)
454cc6:	e9 50 37 fc ff       	jmp    0x41841b
454ccb:	6a 37                	push   $0x37
454ccd:	8b fb                	mov    %ebx,%edi
454ccf:	b9 ff 00 00 00       	mov    $0xff,%ecx
454cd4:	5a                   	pop    %edx
454cd5:	40                   	inc    %eax
454cd6:	89 45 f8             	mov    %eax,-0x8(%ebp)
454cd9:	8d 46 02             	lea    0x2(%esi),%eax
454cdc:	89 45 e8             	mov    %eax,-0x18(%ebp)
454cdf:	0f b7 00             	movzwl (%eax),%eax
454ce2:	66 3b c1             	cmp    %cx,%ax
454ce5:	0f 87 30 37 fc ff    	ja     0x41841b
454ceb:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454cf2:	0f 84 23 37 fc ff    	je     0x41841b
454cf8:	8b 75 e8             	mov    -0x18(%ebp),%esi
454cfb:	0f b7 06             	movzwl (%esi),%eax
454cfe:	89 45 ec             	mov    %eax,-0x14(%ebp)
454d01:	83 f8 61             	cmp    $0x61,%eax
454d04:	72 06                	jb     0x454d0c
454d06:	83 e8 20             	sub    $0x20,%eax
454d09:	89 45 ec             	mov    %eax,-0x14(%ebp)
454d0c:	83 f8 41             	cmp    $0x41,%eax
454d0f:	1b c0                	sbb    %eax,%eax
454d11:	c1 e7 04             	shl    $0x4,%edi
454d14:	83 e0 f9             	and    $0xfffffff9,%eax
454d17:	03 c2                	add    %edx,%eax
454d19:	2b f8                	sub    %eax,%edi
454d1b:	8b 45 f8             	mov    -0x8(%ebp),%eax
454d1e:	03 7d ec             	add    -0x14(%ebp),%edi
454d21:	83 f8 02             	cmp    $0x2,%eax
454d24:	7c af                	jl     0x454cd5
454d26:	e9 f0 36 fc ff       	jmp    0x41841b
454d2b:	f7 45 10 00 00 00 02 	testl  $0x2000000,0x10(%ebp)
454d32:	0f 84 95 01 00 00    	je     0x454ecd
454d38:	0f b7 46 02          	movzwl 0x2(%esi),%eax
454d3c:	b9 ff 00 00 00       	mov    $0xff,%ecx
454d41:	66 3b c1             	cmp    %cx,%ax
454d44:	0f 87 d1 36 fc ff    	ja     0x41841b
454d4a:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454d51:	0f 84 c4 36 fc ff    	je     0x41841b
454d57:	0f b7 46 04          	movzwl 0x4(%esi),%eax
454d5b:	66 3b c1             	cmp    %cx,%ax
454d5e:	0f 87 b7 36 fc ff    	ja     0x41841b
454d64:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454d6b:	0f 84 aa 36 fc ff    	je     0x41841b
454d71:	0f b7 46 06          	movzwl 0x6(%esi),%eax
454d75:	66 3b c1             	cmp    %cx,%ax
454d78:	0f 87 9d 36 fc ff    	ja     0x41841b
454d7e:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454d85:	0f 84 90 36 fc ff    	je     0x41841b
454d8b:	0f b7 46 08          	movzwl 0x8(%esi),%eax
454d8f:	66 3b c1             	cmp    %cx,%ax
454d92:	0f 87 83 36 fc ff    	ja     0x41841b
454d98:	f6 80 80 86 4b 00 08 	testb  $0x8,0x4b8680(%eax)
454d9f:	0f 84 76 36 fc ff    	je     0x41841b
454da5:	6a 37                	push   $0x37
454da7:	8b fb                	mov    %ebx,%edi
454da9:	c7 45 ec 04 00 00 00 	movl   $0x4,-0x14(%ebp)
454db0:	5a                   	pop    %edx
454db1:	83 c6 02             	add    $0x2,%esi
454db4:	0f b7 0e             	movzwl (%esi),%ecx
454db7:	83 f9 61             	cmp    $0x61,%ecx
454dba:	72 03                	jb     0x454dbf
454dbc:	83 e9 20             	sub    $0x20,%ecx
454dbf:	83 f9 41             	cmp    $0x41,%ecx
454dc2:	1b c0                	sbb    %eax,%eax
454dc4:	c1 e7 04             	shl    $0x4,%edi
454dc7:	83 e0 f9             	and    $0xfffffff9,%eax
454dca:	03 c2                	add    %edx,%eax
454dcc:	2b f8                	sub    %eax,%edi
454dce:	03 f9                	add    %ecx,%edi
454dd0:	ff 4d ec             	decl   -0x14(%ebp)
454dd3:	75 dc                	jne    0x454db1
454dd5:	8b 4d f4             	mov    -0xc(%ebp),%ecx
454dd8:	8b c1                	mov    %ecx,%eax
454dda:	f7 d8                	neg    %eax
454ddc:	1b c0                	sbb    %eax,%eax
454dde:	25 00 00 10 00       	and    $0x100000,%eax
454de3:	05 ff ff 00 00       	add    $0xffff,%eax
454de8:	3b f8                	cmp    %eax,%edi
454dea:	0f 86 a6 fe ff ff    	jbe    0x454c96
454df0:	8b 45 08             	mov    0x8(%ebp),%eax
454df3:	c7 00 4c 00 00 00    	movl   $0x4c,(%eax)
454df9:	e9 1d 36 fc ff       	jmp    0x41841b
454dfe:	66 83 7e 02 7b       	cmpw   $0x7b,0x2(%esi)
454e03:	74 0e                	je     0x454e13
454e05:	8b 45 08             	mov    0x8(%ebp),%eax
454e08:	c7 00 51 00 00 00    	movl   $0x51,(%eax)
454e0e:	e9 08 36 fc ff       	jmp    0x41841b
454e13:	6a 7d                	push   $0x7d
454e15:	58                   	pop    %eax
454e16:	66 39 46 04          	cmp    %ax,0x4(%esi)
454e1a:	0f 84 43 fe ff ff    	je     0x454c63
454e20:	83 c6 04             	add    $0x4,%esi
454e23:	8b fb                	mov    %ebx,%edi
454e25:	6a 30                	push   $0x30
454e27:	5a                   	pop    %edx
454e28:	0f b7 06             	movzwl (%esi),%eax
454e2b:	66 3b c2             	cmp    %dx,%ax
454e2e:	72 3f                	jb     0x454e6f
454e30:	6a 37                	push   $0x37
454e32:	5a                   	pop    %edx
454e33:	66 3b c2             	cmp    %dx,%ax
454e36:	77 37                	ja     0x454e6f
454e38:	83 c6 02             	add    $0x2,%esi
454e3b:	0f b7 c0             	movzwl %ax,%eax
454e3e:	85 ff                	test   %edi,%edi
454e40:	75 05                	jne    0x454e47
454e42:	83 f8 30             	cmp    $0x30,%eax
454e45:	74 1f                	je     0x454e66
454e47:	83 c0 d0             	add    $0xffffffd0,%eax
454e4a:	8d 3c f8             	lea    (%eax,%edi,8),%edi
454e4d:	8b c1                	mov    %ecx,%eax
454e4f:	f7 d8                	neg    %eax
454e51:	1b c0                	sbb    %eax,%eax
454e53:	25 00 00 10 00       	and    $0x100000,%eax
454e58:	05 ff ff 00 00       	add    $0xffff,%eax
454e5d:	3b f8                	cmp    %eax,%edi
454e5f:	76 05                	jbe    0x454e66
454e61:	6a 30                	push   $0x30
454e63:	59                   	pop    %ecx
454e64:	eb 2f                	jmp    0x454e95
454e66:	0f b7 06             	movzwl (%esi),%eax
454e69:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
454e6d:	73 c4                	jae    0x454e33
454e6f:	6a 7d                	push   $0x7d
454e71:	58                   	pop    %eax
454e72:	66 39 06             	cmp    %ax,(%esi)
454e75:	0f 84 1b fe ff ff    	je     0x454c96
454e7b:	8b 45 08             	mov    0x8(%ebp),%eax
454e7e:	c7 00 50 00 00 00    	movl   $0x50,(%eax)
454e84:	e9 92 35 fc ff       	jmp    0x41841b
454e89:	66 3b c2             	cmp    %dx,%ax
454e8c:	0f 87 f6 fd ff ff    	ja     0x454c88
454e92:	83 c6 02             	add    $0x2,%esi
454e95:	0f b7 06             	movzwl (%esi),%eax
454e98:	66 3b c1             	cmp    %cx,%ax
454e9b:	73 ec                	jae    0x454e89
454e9d:	e9 e6 fd ff ff       	jmp    0x454c88
454ea2:	8b 45 08             	mov    0x8(%ebp),%eax
454ea5:	c7 00 25 00 00 00    	movl   $0x25,(%eax)
454eab:	e9 b3 35 fc ff       	jmp    0x418463
454eb0:	8b 45 e8             	mov    -0x18(%ebp),%eax
454eb3:	66 39 46 02          	cmp    %ax,0x2(%esi)
454eb7:	0f 85 5e 35 fc ff    	jne    0x41841b
454ebd:	8d 4e 04             	lea    0x4(%esi),%ecx
454ec0:	e8 9a 97 03 00       	call   0x48e65f
454ec5:	85 c0                	test   %eax,%eax
454ec7:	0f 85 4e 35 fc ff    	jne    0x41841b
454ecd:	8b 45 08             	mov    0x8(%ebp),%eax
454ed0:	c7 00 25 00 00 00    	movl   $0x25,(%eax)
454ed6:	e9 40 35 fc ff       	jmp    0x41841b
454edb:	0f b7 46 02          	movzwl 0x2(%esi),%eax
454edf:	8d 34 46             	lea    (%esi,%eax,2),%esi
454ee2:	66 39 1e             	cmp    %bx,(%esi)
454ee5:	74 f4                	je     0x454edb
454ee7:	eb 02                	jmp    0x454eeb
454ee9:	8b f0                	mov    %eax,%esi
454eeb:	0f b7 3e             	movzwl (%esi),%edi
454eee:	e9 04 02 00 00       	jmp    0x4550f7
454ef3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
454ef6:	0f b7 46 02          	movzwl 0x2(%esi),%eax
454efa:	8b 49 14             	mov    0x14(%ecx),%ecx
454efd:	8d 1c 41             	lea    (%ecx,%eax,2),%ebx
454f00:	8b 45 0c             	mov    0xc(%ebp),%eax
454f03:	8b d3                	mov    %ebx,%edx
454f05:	89 55 f8             	mov    %edx,-0x8(%ebp)
454f08:	8b 48 10             	mov    0x10(%eax),%ecx
454f0b:	85 c9                	test   %ecx,%ecx
454f0d:	74 34                	je     0x454f43
454f0f:	3b 48 20             	cmp    0x20(%eax),%ecx
454f12:	73 23                	jae    0x454f37
454f14:	8b d6                	mov    %esi,%edx
454f16:	2b 50 14             	sub    0x14(%eax),%edx
454f19:	83 c2 02             	add    $0x2,%edx
454f1c:	d1 fa                	sar    $1,%edx
454f1e:	0f b7 01             	movzwl (%ecx),%eax
454f21:	3b c2                	cmp    %edx,%eax
454f23:	0f 84 86 36 fc ff    	je     0x4185af
454f29:	8b 45 0c             	mov    0xc(%ebp),%eax
454f2c:	83 c1 02             	add    $0x2,%ecx
454f2f:	3b 48 20             	cmp    0x20(%eax),%ecx
454f32:	72 ea                	jb     0x454f1e
454f34:	8b 55 f8             	mov    -0x8(%ebp),%edx
454f37:	33 c0                	xor    %eax,%eax
454f39:	66 39 43 02          	cmp    %ax,0x2(%ebx)
454f3d:	0f 84 6c 36 fc ff    	je     0x4185af
454f43:	6a 77                	push   $0x77
454f45:	59                   	pop    %ecx
454f46:	0f b7 42 02          	movzwl 0x2(%edx),%eax
454f4a:	8d 14 42             	lea    (%edx,%eax,2),%edx
454f4d:	66 39 0a             	cmp    %cx,(%edx)
454f50:	74 f4                	je     0x454f46
454f52:	3b f3                	cmp    %ebx,%esi
454f54:	72 08                	jb     0x454f5e
454f56:	3b f2                	cmp    %edx,%esi
454f58:	0f 86 96 01 00 00    	jbe    0x4550f4
454f5e:	8b 4d 10             	mov    0x10(%ebp),%ecx
454f61:	8b c1                	mov    %ecx,%eax
454f63:	85 c9                	test   %ecx,%ecx
454f65:	74 13                	je     0x454f7a
454f67:	39 58 04             	cmp    %ebx,0x4(%eax)
454f6a:	74 06                	je     0x454f72
454f6c:	8b 00                	mov    (%eax),%eax
454f6e:	85 c0                	test   %eax,%eax
454f70:	75 f5                	jne    0x454f67
454f72:	85 c0                	test   %eax,%eax
454f74:	0f 85 7a 01 00 00    	jne    0x4550f4
454f7a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
454f7d:	89 5d f4             	mov    %ebx,-0xc(%ebp)
454f80:	8b 55 fc             	mov    -0x4(%ebp),%edx
454f83:	8d 45 f0             	lea    -0x10(%ebp),%eax
454f86:	50                   	push   %eax
454f87:	ff 75 0c             	push   0xc(%ebp)
454f8a:	8b cb                	mov    %ebx,%ecx
454f8c:	ff 75 08             	push   0x8(%ebp)
454f8f:	e8 ed 34 fc ff       	call   0x418481
454f94:	83 c4 0c             	add    $0xc,%esp
454f97:	6a 77                	push   $0x77
454f99:	85 c0                	test   %eax,%eax
454f9b:	0f 85 55 01 00 00    	jne    0x4550f6
454fa1:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
454fa5:	8d 1c 43             	lea    (%ebx,%eax,2),%ebx
454fa8:	58                   	pop    %eax
454fa9:	66 39 03             	cmp    %ax,(%ebx)
454fac:	74 d2                	je     0x454f80
454fae:	e9 e0 35 fc ff       	jmp    0x418593
454fb3:	0f b7 46 02          	movzwl 0x2(%esi),%eax
454fb7:	8d 34 46             	lea    (%esi,%eax,2),%esi
454fba:	8b ce                	mov    %esi,%ecx
454fbc:	e9 de 35 fc ff       	jmp    0x41859f
454fc1:	0f b6 80 2b 51 45 00 	movzbl 0x45512b(%eax),%eax
454fc8:	ff 24 85 1f 51 45 00 	jmp    *0x45511f(,%eax,4)
454fcf:	66 39 51 02          	cmp    %dx,0x2(%ecx)
454fd3:	0f 87 ba 35 fc ff    	ja     0x418593
454fd9:	e9 19 01 00 00       	jmp    0x4550f7
454fde:	0f b7 46 02          	movzwl 0x2(%esi),%eax
454fe2:	66 3b c1             	cmp    %cx,%ax
454fe5:	74 14                	je     0x454ffb
454fe7:	6a 0f                	push   $0xf
454fe9:	59                   	pop    %ecx
454fea:	66 3b c1             	cmp    %cx,%ax