45494d:	0f b7 46 02          	movzwl 0x2(%esi),%eax
454951:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
454955:	0f 82 c0 3a fc ff    	jb     0x41841b
45495b:	66 3b c2             	cmp    %dx,%ax
45495e:	0f 87 b7 3a fc ff    	ja     0x41841b
454964:	83 c6 02             	add    $0x2,%esi
454967:	0f b7 06             	movzwl (%esi),%eax
45496a:	83 c0 d0             	add    $0xffffffd0,%eax
45496d:	8d 3c f8             	lea    (%eax,%edi,8),%edi
454970:	8b 45 f8             	mov    -0x8(%ebp),%eax
454973:	83 f8 02             	cmp    $0x2,%eax
454976:	7c d1                	jl     0x454949
454978:	e9 9e 3a fc ff       	jmp    0x41841b
45497d:	8d 4e 02             	lea    0x2(%esi),%ecx
454980:	0f b7 01             	movzwl (%ecx),%eax
454983:	5a                   	pop    %edx
454984:	66 3b c2             	cmp    %dx,%ax
454987:	72 16                	jb     0x45499f
454989:	6a 39                	push   $0x39
45498b:	5a                   	pop    %edx
45498c:	66 3b c2             	cmp    %dx,%ax
45498f:	77 0e                	ja     0x45499f
454991:	8b f1                	mov    %ecx,%esi
454993:	8d 4e 02             	lea    0x2(%esi),%ecx
454996:	0f b7 01             	movzwl (%ecx),%eax
454999:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
45499d:	73 ed                	jae    0x45498c
45499f:	8b 45 08             	mov    0x8(%ebp),%eax
4549a2:	c7 00 3d 00 00 00    	movl   $0x3d,(%eax)
4549a8:	e9 6e 3a fc ff       	jmp    0x41841b
4549ad:	8b da                	mov    %edx,%ebx
4549af:	e9 ad 3a fc ff       	jmp    0x418461
4549b4:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4549b7:	0f 85 5e 3a fc ff    	jne    0x41841b
4549bd:	8d 46 02             	lea    0x2(%esi),%eax
4549c0:	0f b7 08             	movzwl (%eax),%ecx
4549c3:	89 45 f4             	mov    %eax,-0xc(%ebp)
4549c6:	83 f9 3c             	cmp    $0x3c,%ecx
4549c9:	74 5c                	je     0x454a27
4549cb:	83 f9 27             	cmp    $0x27,%ecx
4549ce:	74 57                	je     0x454a27
4549d0:	6a 39                	push   $0x39
4549d2:	58                   	pop    %eax
4549d3:	6a 7d                	push   $0x7d
4549d5:	5a                   	pop    %edx
4549d6:	6a 00                	push   $0x0
4549d8:	5b                   	pop    %ebx
4549d9:	66 3b 4d e8          	cmp    -0x18(%ebp),%cx
4549dd:	75 5f                	jne    0x454a3e
4549df:	8d 4e 04             	lea    0x4(%esi),%ecx
4549e2:	0f b7 01             	movzwl (%ecx),%eax
4549e5:	66 85 c0             	test   %ax,%ax
4549e8:	74 45                	je     0x454a2f
4549ea:	6a 39                	push   $0x39
4549ec:	5b                   	pop    %ebx
4549ed:	6a 2d                	push   $0x2d
4549ef:	5e                   	pop    %esi
4549f0:	66 3b c2             	cmp    %dx,%ax
4549f3:	74 1b                	je     0x454a10
4549f5:	66 3b c6             	cmp    %si,%ax
4549f8:	74 0b                	je     0x454a05
4549fa:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
4549fe:	72 10                	jb     0x454a10
454a00:	66 3b c3             	cmp    %bx,%ax
454a03:	77 0b                	ja     0x454a10
454a05:	83 c1 02             	add    $0x2,%ecx
454a08:	0f b7 01             	movzwl (%ecx),%eax
454a0b:	66 85 c0             	test   %ax,%ax
454a0e:	75 e0                	jne    0x4549f0
454a10:	0f b7 01             	movzwl (%ecx),%eax
454a13:	8b 75 f0             	mov    -0x10(%ebp),%esi
454a16:	6a 00                	push   $0x0
454a18:	5b                   	pop    %ebx
454a19:	66 85 c0             	test   %ax,%ax
454a1c:	74 11                	je     0x454a2f
454a1e:	66 3b c2             	cmp    %dx,%ax
454a21:	74 0c                	je     0x454a2f
454a23:	6a 1c                	push   $0x1c
454a25:	eb 02                	jmp    0x454a29
454a27:	6a 1b                	push   $0x1b
454a29:	5b                   	pop    %ebx
454a2a:	e9 ec 39 fc ff       	jmp    0x41841b
454a2f:	8b 75 f4             	mov    -0xc(%ebp),%esi
454a32:	6a 39                	push   $0x39
454a34:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
454a3b:	58                   	pop    %eax
454a3c:	eb 03                	jmp    0x454a41
454a3e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
454a41:	6a 2d                	push   $0x2d
454a43:	5a                   	pop    %edx
454a44:	66 39 56 02          	cmp    %dx,0x2(%esi)
454a48:	75 05                	jne    0x454a4f
454a4a:	83 c6 02             	add    $0x2,%esi
454a4d:	eb 03                	jmp    0x454a52
454a4f:	89 5d ec             	mov    %ebx,-0x14(%ebp)
454a52:	8b cb                	mov    %ebx,%ecx
454a54:	8d 5e 02             	lea    0x2(%esi),%ebx
454a57:	89 5d f4             	mov    %ebx,-0xc(%ebp)
454a5a:	0f b7 1b             	movzwl (%ebx),%ebx
454a5d:	66 3b 5d fc          	cmp    -0x4(%ebp),%bx
454a61:	6a 00                	push   $0x0
454a63:	89 5d f8             	mov    %ebx,-0x8(%ebp)
454a66:	5b                   	pop    %ebx
454a67:	6a 7d                	push   $0x7d
454a69:	5a                   	pop    %edx
454a6a:	72 31                	jb     0x454a9d
454a6c:	66 39 45 f8          	cmp    %ax,-0x8(%ebp)
454a70:	77 2b                	ja     0x454a9d
454a72:	81 f9 cb cc cc 0c    	cmp    $0xccccccb,%ecx
454a78:	7f 3f                	jg     0x454ab9
454a7a:	8b 75 f4             	mov    -0xc(%ebp),%esi
454a7d:	6b c9 0a             	imul   $0xa,%ecx,%ecx
454a80:	6a 39                	push   $0x39
454a82:	0f b7 06             	movzwl (%esi),%eax
454a85:	83 c0 d0             	add    $0xffffffd0,%eax
454a88:	03 c8                	add    %eax,%ecx
454a8a:	8d 46 02             	lea    0x2(%esi),%eax
454a8d:	89 45 f4             	mov    %eax,-0xc(%ebp)
454a90:	0f b7 00             	movzwl (%eax),%eax
454a93:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
454a97:	89 45 f8             	mov    %eax,-0x8(%ebp)
454a9a:	58                   	pop    %eax
454a9b:	73 cf                	jae    0x454a6c
454a9d:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
454aa1:	74 47                	je     0x454aea
454aa3:	83 c6 02             	add    $0x2,%esi
454aa6:	66 39 16             	cmp    %dx,(%esi)
454aa9:	74 3f                	je     0x454aea
454aab:	8b 45 08             	mov    0x8(%ebp),%eax
454aae:	c7 00 39 00 00 00    	movl   $0x39,(%eax)
454ab4:	e9 62 39 fc ff       	jmp    0x41841b
454ab9:	8d 4e 02             	lea    0x2(%esi),%ecx
454abc:	0f b7 01             	movzwl (%ecx),%eax
454abf:	6a 30                	push   $0x30
454ac1:	5a                   	pop    %edx
454ac2:	66 3b c2             	cmp    %dx,%ax
454ac5:	0f 82 d4 fe ff ff    	jb     0x45499f
454acb:	6a 39                	push   $0x39
454acd:	5a                   	pop    %edx
454ace:	66 3b c2             	cmp    %dx,%ax
454ad1:	0f 87 c8 fe ff ff    	ja     0x45499f
454ad7:	8b f1                	mov    %ecx,%esi
454ad9:	8d 4e 02             	lea    0x2(%esi),%ecx
454adc:	0f b7 01             	movzwl (%ecx),%eax
454adf:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
454ae3:	73 e9                	jae    0x454ace
454ae5:	e9 b5 fe ff ff       	jmp    0x45499f
454aea:	85 c9                	test   %ecx,%ecx
454aec:	75 0e                	jne    0x454afc
454aee:	8b 45 08             	mov    0x8(%ebp),%eax
454af1:	c7 00 3a 00 00 00    	movl   $0x3a,(%eax)
454af7:	e9 1f 39 fc ff       	jmp    0x41841b
454afc:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
454b00:	74 1a                	je     0x454b1c
454b02:	8b 45 0c             	mov    0xc(%ebp),%eax
454b05:	3b c8                	cmp    %eax,%ecx
454b07:	7e 0e                	jle    0x454b17
454b09:	8b 45 08             	mov    0x8(%ebp),%eax
454b0c:	c7 00 0f 00 00 00    	movl   $0xf,(%eax)
454b12:	e9 04 39 fc ff       	jmp    0x41841b
454b17:	2b c1                	sub    %ecx,%eax
454b19:	8d 48 01             	lea    0x1(%eax),%ecx
454b1c:	8b d9                	mov    %ecx,%ebx
454b1e:	e9 3e 39 fc ff       	jmp    0x418461
454b23:	83 ff 6c             	cmp    $0x6c,%edi
454b26:	0f 84 76 03 00 00    	je     0x454ea2
454b2c:	83 ff 6f             	cmp    $0x6f,%edi
454b2f:	0f 84 c9 02 00 00    	je     0x454dfe
454b35:	83 ff 75             	cmp    $0x75,%edi
454b38:	0f 84 ed 01 00 00    	je     0x454d2b
454b3e:	83 ff 78             	cmp    $0x78,%edi
454b41:	75 7b                	jne    0x454bbe
454b43:	f7 45 10 00 00 00 02 	testl  $0x2000000,0x10(%ebp)
454b4a:	0f 84 86 00 00 00    	je     0x454bd6
454b50:	0f b7 46 02          	movzwl 0x2(%esi),%eax
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