4089e6:	0f 84 98 9d 07 00    	je     0x482784
4089ec:	40                   	inc    %eax
4089ed:	66 3b f8             	cmp    %ax,%di
4089f0:	0f 84 8e 9d 07 00    	je     0x482784
4089f6:	8d 41 71             	lea    0x71(%ecx),%eax
4089f9:	66 3b f8             	cmp    %ax,%di
4089fc:	0f 84 82 9d 07 00    	je     0x482784
408a02:	40                   	inc    %eax
408a03:	66 3b f8             	cmp    %ax,%di
408a06:	0f 84 78 9d 07 00    	je     0x482784
408a0c:	8d 41 77             	lea    0x77(%ecx),%eax
408a0f:	66 3b f8             	cmp    %ax,%di
408a12:	0f 84 6c 9d 07 00    	je     0x482784
408a18:	8d 47 fa             	lea    -0x6(%edi),%eax
408a1b:	3d 95 00 00 00       	cmp    $0x95,%eax
408a20:	0f 87 ea 9d 07 00    	ja     0x482810
408a26:	0f b6 80 7e 8a 40 00 	movzbl 0x408a7e(%eax),%eax
408a2d:	ff 24 85 56 8a 40 00 	jmp    *0x408a56(,%eax,4)
408a34:	33 c0                	xor    %eax,%eax
408a36:	5f                   	pop    %edi
408a37:	5e                   	pop    %esi
408a38:	5b                   	pop    %ebx
408a39:	c9                   	leave
408a3a:	c3                   	ret
408a3b:	8d 4e 22             	lea    0x22(%esi),%ecx
408a3e:	0f b7 01             	movzwl (%ecx),%eax
408a41:	83 c0 9e             	add    $0xffffff9e,%eax
408a44:	83 f8 0b             	cmp    $0xb,%eax
408a47:	77 eb                	ja     0x408a34
408a49:	e9 8c 9c 07 00       	jmp    0x4826da
408a4e:	33 c0                	xor    %eax,%eax
408a50:	40                   	inc    %eax
408a51:	eb e3                	jmp    0x408a36
408a53:	8d 49 00             	lea    0x0(%ecx),%ecx
408a56:	34 8a                	xor    $0x8a,%al
408a58:	40                   	inc    %eax
408a59:	00 2a                	add    %ch,(%edx)
408a5b:	27                   	daa
408a5c:	48                   	dec    %eax
408a5d:	00 6c 27 48          	add    %ch,0x48(%edi,%eiz,1)
408a61:	00 f7                	add    %dh,%bh
408a63:	26 48                	es dec %eax
408a65:	00 1c 27             	add    %bl,(%edi,%eiz,1)
408a68:	48                   	dec    %eax
408a69:	00 3b                	add    %bh,(%ebx)
408a6b:	8a 40 00             	mov    0x0(%eax),%al
408a6e:	cc                   	int3
408a6f:	26 48                	es dec %eax
408a71:	00 4e 8a             	add    %cl,-0x76(%esi)
408a74:	40                   	inc    %eax
408a75:	00 78 27             	add    %bh,0x27(%eax)
408a78:	48                   	dec    %eax
408a79:	00 10                	add    %dl,(%eax)
408a7b:	28 48 00             	sub    %cl,0x0(%eax)
408a8e:	00 09                	add    %cl,(%ecx)
408a90:	09 09                	or     %ecx,(%ecx)
408a92:	09 09                	or     %ecx,(%ecx)
408a94:	09 00                	or     %eax,(%eax)
408a96:	00 00                	add    %al,(%eax)
408a98:	00 01                	add    %al,(%ecx)
408a9a:	01 00                	add    %eax,(%eax)
408a9c:	00 01                	add    %al,(%ecx)
408a9e:	01 02                	add    %eax,(%edx)
408aa0:	02 00                	add    (%eax),%al
408aa2:	01 00                	add    %eax,(%eax)
408aa4:	01 02                	add    %eax,(%edx)
408aa6:	01 01                	add    %eax,(%ecx)
408aa8:	00 00                	add    %al,(%eax)
408aaa:	01 01                	add    %eax,(%ecx)
408aac:	02 02                	add    (%edx),%al
408aae:	00 01                	add    %al,(%ecx)
408ab0:	00 01                	add    %al,(%ecx)
408ab2:	02 01                	add    (%ecx),%al
408ab4:	01 00                	add    %eax,(%eax)
408ab6:	00 01                	add    %al,(%ecx)
408ab8:	01 02                	add    %eax,(%edx)
408aba:	02 00                	add    (%eax),%al
408abc:	01 00                	add    %eax,(%eax)
408abe:	01 02                	add    %eax,(%edx)
408ac0:	01 01                	add    %eax,(%ecx)
408ac2:	00 00                	add    %al,(%eax)
408ac4:	01 01                	add    %eax,(%ecx)
408ac6:	02 02                	add    (%edx),%al
408ac8:	00 01                	add    %al,(%ecx)
408aca:	00 01                	add    %al,(%ecx)
408acc:	02 03                	add    (%ebx),%al
408ace:	03 00                	add    (%eax),%eax
408ad0:	00 03                	add    %al,(%ebx)
408ad2:	03 04 04             	add    (%esp,%eax,1),%eax
408ad5:	00 03                	add    %al,(%ebx)
408ad7:	00 03                	add    %al,(%ebx)
408ad9:	04 09                	add    $0x9,%al
408adb:	09 09                	or     %ecx,(%ecx)
408add:	09 09                	or     %ecx,(%ecx)
408adf:	09 09                	or     %ecx,(%ecx)
408ae1:	09 09                	or     %ecx,(%ecx)
408ae3:	09 09                	or     %ecx,(%ecx)
408ae5:	09 05 05 06 09 09    	or     %eax,0x9090605
408aeb:	09 09                	or     %ecx,(%ecx)
408aed:	09 09                	or     %ecx,(%ecx)
408aef:	07                   	pop    %es
408af0:	07                   	pop    %es
408af1:	07                   	pop    %es
408af2:	07                   	pop    %es
408af3:	07                   	pop    %es
408af4:	09 09                	or     %ecx,(%ecx)
408af6:	09 09                	or     %ecx,(%ecx)
408af8:	09 09                	or     %ecx,(%ecx)
408afa:	09 09                	or     %ecx,(%ecx)
408afc:	09 09                	or     %ecx,(%ecx)
408afe:	09 09                	or     %ecx,(%ecx)
408b00:	09 09                	or     %ecx,(%ecx)
408b02:	09 09                	or     %ecx,(%ecx)
408b04:	09 09                	or     %ecx,(%ecx)
408b06:	09 09                	or     %ecx,(%ecx)
408b08:	09 09                	or     %ecx,(%ecx)
408b0a:	09 09                	or     %ecx,(%ecx)
408b0c:	09 08                	or     %ecx,(%eax)
408b0e:	09 08                	or     %ecx,(%eax)
408b10:	09 08                	or     %ecx,(%eax)
408b12:	09 08                	or     %ecx,(%eax)
408b14:	0f b7 01             	movzwl (%ecx),%eax
408b17:	83 f8 04             	cmp    $0x4,%eax
408b1a:	7c 13                	jl     0x408b2f
408b1c:	83 f8 05             	cmp    $0x5,%eax
408b1f:	7e 11                	jle    0x408b32
408b21:	83 f8 76             	cmp    $0x76,%eax
408b24:	74 10                	je     0x408b36
408b26:	83 f8 7d             	cmp    $0x7d,%eax
408b29:	0f 8f 19 9e 07 00    	jg     0x482948
408b2f:	8b c1                	mov    %ecx,%eax
408b31:	c3                   	ret
408b32:	85 d2                	test   %edx,%edx
408b34:	74 f9                	je     0x408b2f
408b36:	0f b6 80 60 e5 49 00 	movzbl 0x49e560(%eax),%eax
408b3d:	8d 0c 41             	lea    (%ecx,%eax,2),%ecx
408b40:	eb d2                	jmp    0x408b14
408b42:	55                   	push   %ebp
408b43:	8b ec                	mov    %esp,%ebp
408b45:	56                   	push   %esi
408b46:	85 c9                	test   %ecx,%ecx
408b48:	74 2d                	je     0x408b77
408b4a:	8b 55 0c             	mov    0xc(%ebp),%edx
408b4d:	85 d2                	test   %edx,%edx
408b4f:	74 26                	je     0x408b77
408b51:	8b 31                	mov    (%ecx),%esi
408b53:	81 fe 45 52 43 50    	cmp    $0x50435245,%esi
408b59:	0f 85 ee a6 07 00    	jne    0x48324d
408b5f:	f6 41 0c 02          	testb  $0x2,0xc(%ecx)
408b63:	74 0b                	je     0x408b70
408b65:	0f b7 41 1e          	movzwl 0x1e(%ecx),%eax
408b69:	89 02                	mov    %eax,(%edx)
408b6b:	33 c0                	xor    %eax,%eax
408b6d:	5e                   	pop    %esi
408b6e:	5d                   	pop    %ebp
408b6f:	c3                   	ret
408b70:	6a e4                	push   $0xffffffe4
408b72:	e9 ed a6 07 00       	jmp    0x483264
408b77:	6a fe                	push   $0xfffffffe
408b79:	e9 e6 a6 07 00       	jmp    0x483264
408b7e:	33 d2                	xor    %edx,%edx
408b80:	8b c2                	mov    %edx,%eax
408b82:	eb 04                	jmp    0x408b88
408b84:	8d 49 02             	lea    0x2(%ecx),%ecx
408b87:	40                   	inc    %eax
408b88:	66 39 11             	cmp    %dx,(%ecx)
408b8b:	75 f7                	jne    0x408b84
408b8d:	c3                   	ret
408b8e:	55                   	push   %ebp
408b8f:	8b ec                	mov    %esp,%ebp
408b91:	83 ec 2c             	sub    $0x2c,%esp
408b94:	53                   	push   %ebx
408b95:	56                   	push   %esi
408b96:	57                   	push   %edi
408b97:	8b da                	mov    %edx,%ebx
408b99:	8b f1                	mov    %ecx,%esi
408b9b:	c7 45 f8 21 00 00 00 	movl   $0x21,-0x8(%ebp)
408ba2:	c7 45 f4 61 00 00 00 	movl   $0x61,-0xc(%ebp)
408ba9:	6a 07                	push   $0x7
408bab:	5a                   	pop    %edx
408bac:	6a 70                	push   $0x70
408bae:	58                   	pop    %eax
408baf:	0f b7 0e             	movzwl (%esi),%ecx
408bb2:	66 8b f9             	mov    %cx,%di
408bb5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
408bb8:	66 3b 7d f8          	cmp    -0x8(%ebp),%di
408bbc:	0f 83 99 00 00 00    	jae    0x408c5b
408bc2:	66 83 ff 6e          	cmp    $0x6e,%di
408bc6:	0f 84 67 01 00 00    	je     0x408d33
408bcc:	66 83 ff 6f          	cmp    $0x6f,%di
408bd0:	0f 84 5d 01 00 00    	je     0x408d33
408bd6:	66 3b f8             	cmp    %ax,%di
408bd9:	0f 84 54 01 00 00    	je     0x408d33
408bdf:	0f b7 cf             	movzwl %di,%ecx
408be2:	3b c8                	cmp    %eax,%ecx
408be4:	0f 8f fc 00 00 00    	jg     0x408ce6
408bea:	0f 84 ec 5c 07 00    	je     0x47e8dc
408bf0:	83 f9 5d             	cmp    $0x5d,%ecx
408bf3:	0f 8f 1c 01 00 00    	jg     0x408d15
408bf9:	83 f9 5b             	cmp    $0x5b,%ecx
408bfc:	0f 8d bf 5c 07 00    	jge    0x47e8c1
408c02:	85 c9                	test   %ecx,%ecx
408c04:	0f 84 06 01 00 00    	je     0x408d10
408c0a:	83 f9 54             	cmp    $0x54,%ecx
408c0d:	0f 8f 4c 01 00 00    	jg     0x408d5f
408c13:	0f b6 81 60 e5 49 00 	movzbl 0x49e560(%ecx),%eax
408c1a:	6a 07                	push   $0x7
408c1c:	5a                   	pop    %edx
408c1d:	6a 70                	push   $0x70
408c1f:	8d 34 46             	lea    (%esi,%eax,2),%esi
408c22:	58                   	pop    %eax
408c23:	85 db                	test   %ebx,%ebx
408c25:	74 88                	je     0x408baf
408c27:	8d 41 e3             	lea    -0x1d(%ecx),%eax
408c2a:	6a 70                	push   $0x70
408c2c:	83 f8 37             	cmp    $0x37,%eax
408c2f:	58                   	pop    %eax
408c30:	0f 87 79 ff ff ff    	ja     0x408baf
408c36:	66 8b 46 fe          	mov    -0x2(%esi),%ax
408c3a:	b9 00 fc 00 00       	mov    $0xfc00,%ecx
408c3f:	66 23 c1             	and    %cx,%ax
408c42:	b9 00 d8 00 00       	mov    $0xd800,%ecx
408c47:	6a 70                	push   $0x70
408c49:	66 3b c1             	cmp    %cx,%ax
408c4c:	58                   	pop    %eax
408c4d:	0f 85 5c ff ff ff    	jne    0x408baf
408c53:	83 c6 02             	add    $0x2,%esi
408c56:	e9 4e ff ff ff       	jmp    0x408ba9
408c5b:	66 3b 7d f4          	cmp    -0xc(%ebp),%di
408c5f:	0f 87 5d ff ff ff    	ja     0x408bc2
408c65:	e8 74 4c 01 00       	call   0x41d8de
408c6a:	6a 21                	push   $0x21
408c6c:	59                   	pop    %ecx
408c6d:	66 2b c8             	sub    %ax,%cx
408c70:	66 03 f9             	add    %cx,%di
408c73:	66 83 ff 28          	cmp    $0x28,%di
408c77:	0f 87 66 01 00 00    	ja     0x408de3
408c7d:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408c80:	50                   	push   %eax
408c81:	8b 45 08             	mov    0x8(%ebp),%eax
408c84:	8b d3                	mov    %ebx,%edx
408c86:	ff 70 04             	push   0x4(%eax)
408c89:	8b ce                	mov    %esi,%ecx
408c8b:	e8 8e 4a 01 00       	call   0x41d71e
408c90:	59                   	pop    %ecx
408c91:	59                   	pop    %ecx
408c92:	6a 21                	push   $0x21
408c94:	59                   	pop    %ecx
408c95:	66 3b f9             	cmp    %cx,%di
408c98:	0f 84 4c 01 00 00    	je     0x408dea
408c9e:	66 83 ff 23          	cmp    $0x23,%di
408ca2:	0f 84 42 01 00 00    	je     0x408dea
408ca8:	66 83 ff 25          	cmp    $0x25,%di
408cac:	0f 84 38 01 00 00    	je     0x408dea
408cb2:	66 83 ff 27          	cmp    $0x27,%di
408cb6:	0f 84 2e 01 00 00    	je     0x408dea
408cbc:	33 c9                	xor    %ecx,%ecx
408cbe:	89 4d d8             	mov    %ecx,-0x28(%ebp)
408cc1:	85 c0                	test   %eax,%eax
408cc3:	0f 84 84 00 00 00    	je     0x408d4d
408cc9:	50                   	push   %eax
408cca:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
408ccd:	51                   	push   %ecx
408cce:	ff 75 08             	push   0x8(%ebp)
408cd1:	8b d3                	mov    %ebx,%edx
408cd3:	8b c8                	mov    %eax,%ecx
408cd5:	e8 7f 47 01 00       	call   0x41d459
408cda:	83 c4 0c             	add    $0xc,%esp
408cdd:	85 c0                	test   %eax,%eax
408cdf:	74 6c                	je     0x408d4d
408ce1:	e9 8f 5b 07 00       	jmp    0x47e875
408ce6:	8b c1                	mov    %ecx,%eax
408ce8:	2d 95 00 00 00       	sub    $0x95,%eax
408ced:	0f 84 e9 5b 07 00    	je     0x47e8dc
408cf3:	48                   	dec    %eax
408cf4:	48                   	dec    %eax
408cf5:	0f 84 e1 5b 07 00    	je     0x47e8dc
408cfb:	48                   	dec    %eax
408cfc:	48                   	dec    %eax
408cfd:	0f 84 d9 5b 07 00    	je     0x47e8dc
408d03:	48                   	dec    %eax
408d04:	48                   	dec    %eax
408d05:	0f 85 08 ff ff ff    	jne    0x408c13
408d0b:	e9 cc 5b 07 00       	jmp    0x47e8dc
408d10:	5f                   	pop    %edi
408d11:	5e                   	pop    %esi
408d12:	5b                   	pop    %ebx
408d13:	c9                   	leave
408d14:	c3                   	ret
408d15:	83 f9 5e             	cmp    $0x5e,%ecx
408d18:	0f 8c f5 fe ff ff    	jl     0x408c13
408d1e:	83 f9 60             	cmp    $0x60,%ecx
408d21:	7e 45                	jle    0x408d68
408d23:	6a 61                	push   $0x61
408d25:	58                   	pop    %eax
408d26:	3b c8                	cmp    %eax,%ecx
408d28:	0f 85 e5 fe ff ff    	jne    0x408c13
408d2e:	e9 8e 5b 07 00       	jmp    0x47e8c1
408d33:	66 3b f8             	cmp    %ax,%di
408d36:	0f 84 79 5b 07 00    	je     0x47e8b5
408d3c:	8d 7e 22             	lea    0x22(%esi),%edi
408d3f:	0f b7 07             	movzwl (%edi),%eax
408d42:	89 45 fc             	mov    %eax,-0x4(%ebp)
408d45:	83 c0 9e             	add    $0xffffff9e,%eax
408d48:	66 3b c2             	cmp    %dx,%ax
408d4b:	76 3b                	jbe    0x408d88
408d4d:	0f b7 06             	movzwl (%esi),%eax
408d50:	89 45 fc             	mov    %eax,-0x4(%ebp)
408d53:	66 8b 7d fc          	mov    -0x4(%ebp),%di
408d57:	6a 70                	push   $0x70
408d59:	58                   	pop    %eax
408d5a:	e9 80 fe ff ff       	jmp    0x408bdf
408d5f:	83 f9 5a             	cmp    $0x5a,%ecx
408d62:	0f 8f ab fe ff ff    	jg     0x408c13
408d68:	0f b7 46 02          	movzwl 0x2(%esi),%eax
408d6c:	6a 10                	push   $0x10
408d6e:	5a                   	pop    %edx
408d6f:	66 3b c2             	cmp    %dx,%ax
408d72:	74 0c                	je     0x408d80
408d74:	6a 0f                	push   $0xf
408d76:	5a                   	pop    %edx
408d77:	66 3b c2             	cmp    %dx,%ax
408d7a:	0f 85 93 fe ff ff    	jne    0x408c13
408d80:	83 c6 04             	add    $0x4,%esi
408d83:	e9 8b fe ff ff       	jmp    0x408c13
408d88:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408d8b:	50                   	push   %eax
408d8c:	8b 45 08             	mov    0x8(%ebp),%eax
408d8f:	8b d3                	mov    %ebx,%edx
408d91:	ff 70 04             	push   0x4(%eax)
408d94:	8b ce                	mov    %esi,%ecx
408d96:	e8 83 49 01 00       	call   0x41d71e
408d9b:	8a 4d fc             	mov    -0x4(%ebp),%cl
408d9e:	f6 d1                	not    %cl
408da0:	0f b6 c9             	movzbl %cl,%ecx
408da3:	83 e1 01             	and    $0x1,%ecx
408da6:	89 4d d8             	mov    %ecx,-0x28(%ebp)
408da9:	50                   	push   %eax
408daa:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
408dad:	51                   	push   %ecx
408dae:	ff 75 08             	push   0x8(%ebp)
408db1:	8b d3                	mov    %ebx,%edx
408db3:	8b c8                	mov    %eax,%ecx
408db5:	e8 9f 46 01 00       	call   0x41d459
408dba:	83 c4 14             	add    $0x14,%esp
408dbd:	85 c0                	test   %eax,%eax
408dbf:	74 8c                	je     0x408d4d
408dc1:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
408dc5:	83 c0 9e             	add    $0xffffff9e,%eax
408dc8:	83 f8 07             	cmp    $0x7,%eax