4089da:	5d                   	pop    %ebp
4089db:	c3                   	ret
4089dc:	53                   	push   %ebx
4089dd:	ac                   	lods   %ds:(%esi),%al
4089de:	49                   	dec    %ecx
4089df:	e8 55 8b ec 81       	call   0x822d1539
4089e4:	ec                   	in     (%dx),%al
4089e5:	74 03                	je     0x4089ea
4089e7:	00 00                	add    %al,(%eax)
4089e9:	53                   	push   %ebx
4089ea:	56                   	push   %esi
4089eb:	57                   	push   %edi
4089ec:	68 03 01 00 00       	push   $0x103
4089f1:	33 f6                	xor    %esi,%esi
4089f3:	8d 85 95 fe ff ff    	lea    -0x16b(%ebp),%eax
4089f9:	56                   	push   %esi
4089fa:	50                   	push   %eax
4089fb:	c6 85 94 fe ff ff 00 	movb   $0x0,-0x16c(%ebp)
408a02:	e8 d9 f9 00 00       	call   0x4183e0
408a07:	33 c9                	xor    %ecx,%ecx
408a09:	68 06 02 00 00       	push   $0x206
408a0e:	51                   	push   %ecx
408a0f:	8d 95 8e fc ff ff    	lea    -0x372(%ebp),%edx
408a15:	52                   	push   %edx
408a16:	66 89 8d 8c fc ff ff 	mov    %cx,-0x374(%ebp)
408a1d:	e8 be f9 00 00       	call   0x4183e0
408a22:	8b 7d 08             	mov    0x8(%ebp),%edi
408a25:	6a 01                	push   $0x1
408a27:	8d 85 94 fe ff ff    	lea    -0x16c(%ebp),%eax
408a2d:	50                   	push   %eax
408a2e:	57                   	push   %edi
408a2f:	e8 6c e8 ff ff       	call   0x4072a0
408a34:	56                   	push   %esi
408a35:	56                   	push   %esi
408a36:	8d 8d 8c fc ff ff    	lea    -0x374(%ebp),%ecx
408a3c:	51                   	push   %ecx
408a3d:	57                   	push   %edi
408a3e:	e8 2d fd ff ff       	call   0x408770
408a43:	8a 85 94 fe ff ff    	mov    -0x16c(%ebp),%al
408a49:	83 c4 34             	add    $0x34,%esp
408a4c:	84 c0                	test   %al,%al
408a4e:	74 10                	je     0x408a60
408a50:	3c 2f                	cmp    $0x2f,%al
408a52:	74 0c                	je     0x408a60
408a54:	8a 84 35 95 fe ff ff 	mov    -0x16b(%ebp,%esi,1),%al
408a5b:	46                   	inc    %esi
408a5c:	84 c0                	test   %al,%al
408a5e:	75 f0                	jne    0x408a50
408a60:	8d b4 35 94 fe ff ff 	lea    -0x16c(%ebp,%esi,1),%esi
408a67:	56                   	push   %esi
408a68:	e8 c3 fb 00 00       	call   0x418630
408a6d:	83 c4 04             	add    $0x4,%esp
408a70:	50                   	push   %eax
408a71:	8d 95 8c fc ff ff    	lea    -0x374(%ebp),%edx
408a77:	56                   	push   %esi
408a78:	52                   	push   %edx
408a79:	e8 d2 fb 00 00       	call   0x418650
408a7e:	8d 84 45 8c fc ff ff 	lea    -0x374(%ebp,%eax,2),%eax
408a85:	83 c4 04             	add    $0x4,%esp
408a88:	50                   	push   %eax
408a89:	e8 d2 f8 00 00       	call   0x418360
408a8e:	8d 8d 8c fc ff ff    	lea    -0x374(%ebp),%ecx
408a94:	51                   	push   %ecx
408a95:	e8 b6 fb 00 00       	call   0x418650
408a9a:	8d 55 98             	lea    -0x68(%ebp),%edx
408a9d:	8b f0                	mov    %eax,%esi
408a9f:	52                   	push   %edx
408aa0:	03 f6                	add    %esi,%esi
408aa2:	e8 09 ee ff ff       	call   0x4078b0
408aa7:	56                   	push   %esi
408aa8:	8d 85 8c fc ff ff    	lea    -0x374(%ebp),%eax
408aae:	50                   	push   %eax
408aaf:	8d 4d 98             	lea    -0x68(%ebp),%ecx
408ab2:	51                   	push   %ecx
408ab3:	e8 e8 f7 ff ff       	call   0x4082a0
408ab8:	8d 55 98             	lea    -0x68(%ebp),%edx
408abb:	52                   	push   %edx
408abc:	e8 af f7 ff ff       	call   0x408270
408ac1:	8d 45 98             	lea    -0x68(%ebp),%eax
408ac4:	50                   	push   %eax
408ac5:	8d 8d 8c fc ff ff    	lea    -0x374(%ebp),%ecx
408acb:	56                   	push   %esi
408acc:	51                   	push   %ecx
408acd:	e8 ce f8 ff ff       	call   0x4083a0
408ad2:	8b 5d 10             	mov    0x10(%ebp),%ebx
408ad5:	83 c4 30             	add    $0x30,%esp
408ad8:	33 ff                	xor    %edi,%edi
408ada:	85 db                	test   %ebx,%ebx
408adc:	74 5a                	je     0x408b38
408ade:	8b 45 0c             	mov    0xc(%ebp),%eax
408ae1:	8d b5 8c fc ff ff    	lea    -0x374(%ebp),%esi
408ae7:	8b d6                	mov    %esi,%edx
408ae9:	2b c2                	sub    %edx,%eax
408aeb:	89 45 10             	mov    %eax,0x10(%ebp)
408aee:	8b ff                	mov    %edi,%edi
408af0:	0f b7 06             	movzwl (%esi),%eax
408af3:	50                   	push   %eax
408af4:	e8 47 01 01 00       	call   0x418c40
408af9:	83 c4 04             	add    $0x4,%esp
408afc:	85 c0                	test   %eax,%eax
408afe:	75 16                	jne    0x408b16
408b00:	8d 0c 3b             	lea    (%ebx,%edi,1),%ecx
408b03:	66 01 0e             	add    %cx,(%esi)
408b06:	0f b7 16             	movzwl (%esi),%edx
408b09:	52                   	push   %edx
408b0a:	e8 31 01 01 00       	call   0x418c40
408b0f:	83 c4 04             	add    $0x4,%esp
408b12:	85 c0                	test   %eax,%eax
408b14:	74 ea                	je     0x408b00
408b16:	66 8b 06             	mov    (%esi),%ax
408b19:	8b 4d 10             	mov    0x10(%ebp),%ecx
408b1c:	66 89 04 31          	mov    %ax,(%ecx,%esi,1)
408b20:	47                   	inc    %edi
408b21:	83 c6 02             	add    $0x2,%esi
408b24:	3b fb                	cmp    %ebx,%edi
408b26:	72 c8                	jb     0x408af0
408b28:	8b 45 0c             	mov    0xc(%ebp),%eax
408b2b:	5f                   	pop    %edi
408b2c:	33 d2                	xor    %edx,%edx
408b2e:	5e                   	pop    %esi
408b2f:	66 89 14 58          	mov    %dx,(%eax,%ebx,2)
408b33:	5b                   	pop    %ebx
408b34:	8b e5                	mov    %ebp,%esp
408b36:	5d                   	pop    %ebp
408b37:	c3                   	ret
408b38:	8b 55 0c             	mov    0xc(%ebp),%edx
408b3b:	5f                   	pop    %edi
408b3c:	33 c9                	xor    %ecx,%ecx
408b3e:	5e                   	pop    %esi
408b3f:	66 89 0c 5a          	mov    %cx,(%edx,%ebx,2)
408b43:	5b                   	pop    %ebx
408b44:	8b e5                	mov    %ebp,%esp
408b46:	5d                   	pop    %ebp
408b47:	c3                   	ret
408b48:	58                   	pop    %eax
408b49:	11 fe                	adc    %edi,%esi
408b4b:	5a                   	pop    %edx
408b4c:	8a 1e                	mov    (%esi),%bl
408b4e:	28 28                	sub    %ch,(%eax)
408b50:	55                   	push   %ebp
408b51:	8b ec                	mov    %esp,%ebp
408b53:	8b 45 08             	mov    0x8(%ebp),%eax
408b56:	83 ec 20             	sub    $0x20,%esp
408b59:	56                   	push   %esi
408b5a:	8b 75 0c             	mov    0xc(%ebp),%esi
408b5d:	57                   	push   %edi
408b5e:	6a 00                	push   $0x0
408b60:	6a 03                	push   $0x3
408b62:	56                   	push   %esi
408b63:	50                   	push   %eax
408b64:	e8 07 fc ff ff       	call   0x408770
408b69:	56                   	push   %esi
408b6a:	e8 e1 fa 00 00       	call   0x418650
408b6f:	8b 7d 10             	mov    0x10(%ebp),%edi
408b72:	57                   	push   %edi
408b73:	c7 04 46 5c 00 00 00 	movl   $0x5c,(%esi,%eax,2)
408b7a:	e8 d1 fa 00 00       	call   0x418650
408b7f:	83 c4 18             	add    $0x18,%esp
408b82:	03 c0                	add    %eax,%eax
408b84:	50                   	push   %eax
408b85:	57                   	push   %edi
408b86:	56                   	push   %esi
408b87:	e8 c4 fa 00 00       	call   0x418650
408b8c:	8d 04 46             	lea    (%esi,%eax,2),%eax
408b8f:	83 c4 04             	add    $0x4,%esp
408b92:	50                   	push   %eax
408b93:	e8 c8 f7 00 00       	call   0x418360
408b98:	8b 4d 14             	mov    0x14(%ebp),%ecx
408b9b:	83 c4 0c             	add    $0xc,%esp
408b9e:	85 c9                	test   %ecx,%ecx
408ba0:	74 5f                	je     0x408c01
408ba2:	33 c0                	xor    %eax,%eax
408ba4:	c7 45 e0 6c 00 6f 00 	movl   $0x6f006c,-0x20(%ebp)
408bab:	c7 45 e4 67 00 2e 00 	movl   $0x2e0067,-0x1c(%ebp)
408bb2:	c7 45 e8 69 00 6e 00 	movl   $0x6e0069,-0x18(%ebp)
408bb9:	c7 45 ec 69 00 00 00 	movl   $0x69,-0x14(%ebp)
408bc0:	89 45 f0             	mov    %eax,-0x10(%ebp)
408bc3:	89 45 f4             	mov    %eax,-0xc(%ebp)
408bc6:	89 45 f8             	mov    %eax,-0x8(%ebp)
408bc9:	89 45 fc             	mov    %eax,-0x4(%ebp)
408bcc:	83 f9 02             	cmp    $0x2,%ecx
408bcf:	75 09                	jne    0x408bda
408bd1:	b9 73 00 00 00       	mov    $0x73,%ecx
408bd6:	66 89 4d e0          	mov    %cx,-0x20(%ebp)
408bda:	56                   	push   %esi
408bdb:	e8 70 fa 00 00       	call   0x418650
408be0:	6a 03                	push   $0x3
408be2:	ba 5c 00 00 00       	mov    $0x5c,%edx
408be7:	57                   	push   %edi
408be8:	56                   	push   %esi
408be9:	66 89 14 46          	mov    %dx,(%esi,%eax,2)
408bed:	e8 ce fb 00 00       	call   0x4187c0
408bf2:	6a 00                	push   $0x0
408bf4:	8d 45 e0             	lea    -0x20(%ebp),%eax
408bf7:	50                   	push   %eax
408bf8:	56                   	push   %esi
408bf9:	e8 c2 fb 00 00       	call   0x4187c0
408bfe:	83 c4 1c             	add    $0x1c,%esp
408c01:	5f                   	pop    %edi
408c02:	5e                   	pop    %esi
408c03:	8b e5                	mov    %ebp,%esp
408c05:	5d                   	pop    %ebp
408c06:	c3                   	ret
408c07:	7e 69                	jle    0x408c72
408c09:	16                   	push   %ss
408c0a:	32 24 6c             	xor    (%esp,%ebp,2),%ah
408c0d:	69 65 42 55 8b ec 81 	imul   $0x81ec8b55,0x42(%ebp),%esp
408c14:	ec                   	in     (%dx),%al
408c15:	94                   	xchg   %eax,%esp
408c16:	00 00                	add    %al,(%eax)
408c18:	00 8b 4d 08 33 c0    	add    %cl,-0x3fccf7b3(%ebx)
408c1e:	53                   	push   %ebx
408c1f:	56                   	push   %esi
408c20:	33 db                	xor    %ebx,%ebx
408c22:	89 45 80             	mov    %eax,-0x80(%ebp)
408c25:	89 45 84             	mov    %eax,-0x7c(%ebp)
408c28:	89 45 88             	mov    %eax,-0x78(%ebp)
408c2b:	89 45 8c             	mov    %eax,-0x74(%ebp)
408c2e:	89 45 90             	mov    %eax,-0x70(%ebp)
408c31:	89 45 94             	mov    %eax,-0x6c(%ebp)
408c34:	89 45 98             	mov    %eax,-0x68(%ebp)
408c37:	89 45 9c             	mov    %eax,-0x64(%ebp)
408c3a:	89 45 a0             	mov    %eax,-0x60(%ebp)
408c3d:	57                   	push   %edi
408c3e:	8d 85 7c ff ff ff    	lea    -0x84(%ebp),%eax
408c44:	50                   	push   %eax
408c45:	51                   	push   %ecx
408c46:	89 5d fc             	mov    %ebx,-0x4(%ebp)
408c49:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408c4c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
408c4f:	89 5d e8             	mov    %ebx,-0x18(%ebp)
408c52:	89 5d ec             	mov    %ebx,-0x14(%ebp)
408c55:	89 9d 7c ff ff ff    	mov    %ebx,-0x84(%ebp)
408c5b:	e8 80 70 00 00       	call   0x40fce0
408c60:	83 c4 08             	add    $0x8,%esp
408c63:	85 c0                	test   %eax,%eax
408c65:	0f 84 26 01 00 00    	je     0x408d91
408c6b:	53                   	push   %ebx
408c6c:	ff 55 98             	call   *-0x68(%ebp)
408c6f:	8d 4d f8             	lea    -0x8(%ebp),%ecx
408c72:	51                   	push   %ecx
408c73:	8d 55 a4             	lea    -0x5c(%ebp),%edx
408c76:	52                   	push   %edx
408c77:	6a 01                	push   $0x1
408c79:	53                   	push   %ebx
408c7a:	8d 45 b4             	lea    -0x4c(%ebp),%eax
408c7d:	be 78 c2 00 00       	mov    $0xc278,%esi
408c82:	50                   	push   %eax
408c83:	c7 45 b4 20 96 70 13 	movl   $0x13709620,-0x4c(%ebp)
408c8a:	c7 45 b8 79 c2 ce 11 	movl   $0x11cec279,-0x48(%ebp)
408c91:	c7 45 bc a4 9e 44 45 	movl   $0x45449ea4,-0x44(%ebp)
408c98:	c7 45 c0 53 54 00 00 	movl   $0x5453,-0x40(%ebp)
408c9f:	c7 45 a4 c0 15 f0 d8 	movl   $0xd8f015c0,-0x5c(%ebp)
408ca6:	66 89 75 a8          	mov    %si,-0x58(%ebp)
408caa:	c7 45 aa ce 11 a4 9e 	movl   $0x9ea411ce,-0x56(%ebp)
408cb1:	c7 45 ae 44 45 53 54 	movl   $0x54534544,-0x52(%ebp)
408cb8:	66 89 5d b2          	mov    %bx,-0x4e(%ebp)
408cbc:	ff 55 a0             	call   *-0x60(%ebp)
408cbf:	85 c0                	test   %eax,%eax
408cc1:	0f 85 ca 00 00 00    	jne    0x408d91
408cc7:	8b 55 f8             	mov    -0x8(%ebp),%edx
408cca:	8b 32                	mov    (%edx),%esi
408ccc:	8d 45 fc             	lea    -0x4(%ebp),%eax
408ccf:	50                   	push   %eax
408cd0:	b9 08 00 00 00       	mov    $0x8,%ecx
408cd5:	66 89 4d c4          	mov    %cx,-0x3c(%ebp)
408cd9:	8b 7d c4             	mov    -0x3c(%ebp),%edi
408cdc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408cdf:	83 ec 10             	sub    $0x10,%esp
408ce2:	8b c4                	mov    %esp,%eax
408ce4:	89 38                	mov    %edi,(%eax)
408ce6:	8b 7d c8             	mov    -0x38(%ebp),%edi
408ce9:	89 78 04             	mov    %edi,0x4(%eax)
408cec:	89 48 08             	mov    %ecx,0x8(%eax)
408cef:	8b 4d d0             	mov    -0x30(%ebp),%ecx
408cf2:	52                   	push   %edx
408cf3:	8b 56 24             	mov    0x24(%esi),%edx
408cf6:	89 48 0c             	mov    %ecx,0xc(%eax)
408cf9:	ff d2                	call   *%edx
408cfb:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
408cfe:	0f 84 82 00 00 00    	je     0x408d86
408d04:	8b 55 f8             	mov    -0x8(%ebp),%edx
408d07:	8b 4d 10             	mov    0x10(%ebp),%ecx
408d0a:	8b 32                	mov    (%edx),%esi
408d0c:	b8 08 00 00 00       	mov    $0x8,%eax
408d11:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
408d15:	8b 7d c4             	mov    -0x3c(%ebp),%edi
408d18:	8d 45 f4             	lea    -0xc(%ebp),%eax
408d1b:	50                   	push   %eax
408d1c:	83 ec 10             	sub    $0x10,%esp
408d1f:	8b c4                	mov    %esp,%eax
408d21:	89 38                	mov    %edi,(%eax)
408d23:	8b 7d c8             	mov    -0x38(%ebp),%edi
408d26:	89 78 04             	mov    %edi,0x4(%eax)
408d29:	89 48 08             	mov    %ecx,0x8(%eax)
408d2c:	8b 4d d0             	mov    -0x30(%ebp),%ecx
408d2f:	52                   	push   %edx
408d30:	8b 56 24             	mov    0x24(%esi),%edx
408d33:	89 48 0c             	mov    %ecx,0xc(%eax)
408d36:	ff d2                	call   *%edx
408d38:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d3b:	8b 08                	mov    (%eax),%ecx
408d3d:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
408d40:	74 3e                	je     0x408d80
408d42:	8d 55 ec             	lea    -0x14(%ebp),%edx
408d45:	52                   	push   %edx
408d46:	50                   	push   %eax
408d47:	8b 41 2c             	mov    0x2c(%ecx),%eax
408d4a:	ff d0                	call   *%eax
408d4c:	8b 45 ec             	mov    -0x14(%ebp),%eax
408d4f:	3b c3                	cmp    %ebx,%eax
408d51:	74 1d                	je     0x408d70
408d53:	8b 08                	mov    (%eax),%ecx
408d55:	8d 55 e4             	lea    -0x1c(%ebp),%edx
408d58:	52                   	push   %edx
408d59:	50                   	push   %eax
408d5a:	8b 41 1c             	mov    0x1c(%ecx),%eax
408d5d:	ff d0                	call   *%eax
408d5f:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
408d63:	7d 35                	jge    0x408d9a
408d65:	8b 45 ec             	mov    -0x14(%ebp),%eax
408d68:	8b 08                	mov    (%eax),%ecx
408d6a:	8b 51 08             	mov    0x8(%ecx),%edx
408d6d:	50                   	push   %eax
408d6e:	ff d2                	call   *%edx
408d70:	8b 45 f4             	mov    -0xc(%ebp),%eax
408d73:	8b 08                	mov    (%eax),%ecx
408d75:	8b 51 08             	mov    0x8(%ecx),%edx
408d78:	50                   	push   %eax
408d79:	ff d2                	call   *%edx
408d7b:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d7e:	8b 08                	mov    (%eax),%ecx
408d80:	8b 51 08             	mov    0x8(%ecx),%edx
408d83:	50                   	push   %eax
408d84:	ff d2                	call   *%edx
408d86:	8b 45 f8             	mov    -0x8(%ebp),%eax
408d89:	8b 08                	mov    (%eax),%ecx
408d8b:	8b 51 08             	mov    0x8(%ecx),%edx
408d8e:	50                   	push   %eax
408d8f:	ff d2                	call   *%edx
408d91:	33 c0                	xor    %eax,%eax
408d93:	5f                   	pop    %edi
408d94:	5e                   	pop    %esi
408d95:	5b                   	pop    %ebx
408d96:	8b e5                	mov    %ebp,%esp
408d98:	5d                   	pop    %ebp
408d99:	c3                   	ret
408d9a:	33 c0                	xor    %eax,%eax
408d9c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
408d9f:	51                   	push   %ecx