408bee:	b7 00                	mov    $0x0,%bh
408bf0:	89 c6                	mov    %eax,%esi
408bf2:	b3 00                	mov    $0x0,%bl
408bf4:	80 f9 47             	cmp    $0x47,%cl
408bf7:	74 3f                	je     0x408c38
408bf9:	b3 01                	mov    $0x1,%bl
408bfb:	80 f9 45             	cmp    $0x45,%cl
408bfe:	74 38                	je     0x408c38
408c00:	b3 02                	mov    $0x2,%bl
408c02:	80 f9 46             	cmp    $0x46,%cl
408c05:	74 12                	je     0x408c19
408c07:	b3 03                	mov    $0x3,%bl
408c09:	80 f9 4e             	cmp    $0x4e,%cl
408c0c:	74 0b                	je     0x408c19
408c0e:	80 f9 4d             	cmp    $0x4d,%cl
408c11:	0f 85 8a fe ff ff    	jne    0x408aa1
408c17:	b3 04                	mov    $0x4,%bl
408c19:	b8 12 00 00 00       	mov    $0x12,%eax
408c1e:	8b 55 dc             	mov    -0x24(%ebp),%edx
408c21:	39 c2                	cmp    %eax,%edx
408c23:	76 25                	jbe    0x408c4a
408c25:	ba 02 00 00 00       	mov    $0x2,%edx
408c2a:	80 f9 4d             	cmp    $0x4d,%cl
408c2d:	75 1b                	jne    0x408c4a
408c2f:	0f b6 15 88 96 46 00 	movzbl 0x469688,%edx
408c36:	eb 12                	jmp    0x408c4a
408c38:	8b 45 dc             	mov    -0x24(%ebp),%eax
408c3b:	ba 03 00 00 00       	mov    $0x3,%edx
408c40:	83 f8 12             	cmp    $0x12,%eax
408c43:	76 05                	jbe    0x408c4a
408c45:	b8 0f 00 00 00       	mov    $0xf,%eax
408c4a:	53                   	push   %ebx
408c4b:	50                   	push   %eax
408c4c:	52                   	push   %edx
408c4d:	8d 45 97             	lea    -0x69(%ebp),%eax
408c50:	89 f2                	mov    %esi,%edx
408c52:	0f b6 cf             	movzbl %bh,%ecx
408c55:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408c58:	e8 bf 01 00 00       	call   0x408e1c
408c5d:	89 c1                	mov    %eax,%ecx
408c5f:	8d 75 97             	lea    -0x69(%ebp),%esi
408c62:	c3                   	ret
408c63:	53                   	push   %ebx
408c64:	50                   	push   %eax
408c65:	8d 45 ec             	lea    -0x14(%ebp),%eax
408c68:	8b 5d fc             	mov    -0x4(%ebp),%ebx
408c6b:	e8 4c b3 ff ff       	call   0x403fbc
408c70:	58                   	pop    %eax
408c71:	5b                   	pop    %ebx
408c72:	c3                   	ret
408c73:	e8 eb ff ff ff       	call   0x408c63
408c78:	5f                   	pop    %edi
408c79:	5e                   	pop    %esi
408c7a:	5b                   	pop    %ebx
408c7b:	5b                   	pop    %ebx
408c7c:	8b e5                	mov    %ebp,%esp
408c7e:	5d                   	pop    %ebp
408c7f:	c2 0c 00             	ret    $0xc
408c82:	8b c0                	mov    %eax,%eax
408c84:	55                   	push   %ebp
408c85:	8b ec                	mov    %esp,%ebp
408c87:	53                   	push   %ebx
408c88:	56                   	push   %esi
408c89:	57                   	push   %edi
408c8a:	8b f9                	mov    %ecx,%edi
408c8c:	8b f2                	mov    %edx,%esi
408c8e:	8b d8                	mov    %eax,%ebx
408c90:	85 db                	test   %ebx,%ebx
408c92:	74 27                	je     0x408cbb
408c94:	85 f6                	test   %esi,%esi
408c96:	74 23                	je     0x408cbb
408c98:	8b c6                	mov    %esi,%eax
408c9a:	e8 89 f9 ff ff       	call   0x408628
408c9f:	50                   	push   %eax
408ca0:	57                   	push   %edi
408ca1:	8b 45 08             	mov    0x8(%ebp),%eax
408ca4:	50                   	push   %eax
408ca5:	8b ce                	mov    %esi,%ecx
408ca7:	8b c3                	mov    %ebx,%eax
408ca9:	ba ff ff ff 7f       	mov    $0x7fffffff,%edx
408cae:	e8 59 fc ff ff       	call   0x40890c
408cb3:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
408cb7:	8b c3                	mov    %ebx,%eax
408cb9:	eb 02                	jmp    0x408cbd
408cbb:	33 c0                	xor    %eax,%eax
408cbd:	5f                   	pop    %edi
408cbe:	5e                   	pop    %esi
408cbf:	5b                   	pop    %ebx
408cc0:	5d                   	pop    %ebp
408cc1:	c2 04 00             	ret    $0x4
408cc4:	55                   	push   %ebp
408cc5:	8b ec                	mov    %esp,%ebp
408cc7:	53                   	push   %ebx
408cc8:	56                   	push   %esi
408cc9:	57                   	push   %edi
408cca:	8b f1                	mov    %ecx,%esi
408ccc:	8b fa                	mov    %edx,%edi
408cce:	8b d8                	mov    %eax,%ebx
408cd0:	85 db                	test   %ebx,%ebx
408cd2:	74 27                	je     0x408cfb
408cd4:	85 f6                	test   %esi,%esi
408cd6:	74 23                	je     0x408cfb
408cd8:	8b c6                	mov    %esi,%eax
408cda:	e8 49 f9 ff ff       	call   0x408628
408cdf:	50                   	push   %eax
408ce0:	8b 45 0c             	mov    0xc(%ebp),%eax
408ce3:	50                   	push   %eax
408ce4:	8b 45 08             	mov    0x8(%ebp),%eax
408ce7:	50                   	push   %eax
408ce8:	8b ce                	mov    %esi,%ecx
408cea:	8b c3                	mov    %ebx,%eax
408cec:	8b d7                	mov    %edi,%edx
408cee:	e8 19 fc ff ff       	call   0x40890c
408cf3:	c6 04 03 00          	movb   $0x0,(%ebx,%eax,1)
408cf7:	8b c3                	mov    %ebx,%eax
408cf9:	eb 02                	jmp    0x408cfd
408cfb:	33 c0                	xor    %eax,%eax
408cfd:	5f                   	pop    %edi
408cfe:	5e                   	pop    %esi
408cff:	5b                   	pop    %ebx
408d00:	5d                   	pop    %ebp
408d01:	c2 08 00             	ret    $0x8
408d04:	55                   	push   %ebp
408d05:	8b ec                	mov    %esp,%ebp
408d07:	51                   	push   %ecx
408d08:	8b 4d 08             	mov    0x8(%ebp),%ecx
408d0b:	91                   	xchg   %eax,%ecx
408d0c:	87 d1                	xchg   %edx,%ecx
408d0e:	e8 05 00 00 00       	call   0x408d18
408d13:	5d                   	pop    %ebp
408d14:	c2 04 00             	ret    $0x4
408d17:	90                   	nop
408d18:	55                   	push   %ebp
408d19:	8b ec                	mov    %esp,%ebp
408d1b:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
408d21:	50                   	push   %eax
408d22:	83 c4 f8             	add    $0xfffffff8,%esp
408d25:	53                   	push   %ebx
408d26:	56                   	push   %esi
408d27:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408d2a:	89 55 fc             	mov    %edx,-0x4(%ebp)
408d2d:	8b f0                	mov    %eax,%esi
408d2f:	bb 00 10 00 00       	mov    $0x1000,%ebx
408d34:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d37:	e8 40 b5 ff ff       	call   0x40427c
408d3c:	3d 00 0c 00 00       	cmp    $0xc00,%eax
408d41:	7d 26                	jge    0x408d69
408d43:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d46:	e8 31 b5 ff ff       	call   0x40427c
408d4b:	50                   	push   %eax
408d4c:	8b 45 f8             	mov    -0x8(%ebp),%eax
408d4f:	50                   	push   %eax
408d50:	8b 45 08             	mov    0x8(%ebp),%eax
408d53:	50                   	push   %eax
408d54:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408d57:	8d 85 f8 ef ff ff    	lea    -0x1008(%ebp),%eax
408d5d:	ba ff 0f 00 00       	mov    $0xfff,%edx
408d62:	e8 a5 fb ff ff       	call   0x40890c
408d67:	eb 0c                	jmp    0x408d75
408d69:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d6c:	e8 0b b5 ff ff       	call   0x40427c
408d71:	8b d8                	mov    %eax,%ebx
408d73:	8b c3                	mov    %ebx,%eax
408d75:	8b d3                	mov    %ebx,%edx
408d77:	4a                   	dec    %edx
408d78:	3b c2                	cmp    %edx,%eax
408d7a:	7c 43                	jl     0x408dbf
408d7c:	eb 30                	jmp    0x408dae
408d7e:	03 db                	add    %ebx,%ebx
408d80:	8b c6                	mov    %esi,%eax
408d82:	e8 35 b2 ff ff       	call   0x403fbc
408d87:	8b c6                	mov    %esi,%eax
408d89:	8b d3                	mov    %ebx,%edx
408d8b:	e8 78 b8 ff ff       	call   0x404608
408d90:	8b 45 fc             	mov    -0x4(%ebp),%eax
408d93:	e8 e4 b4 ff ff       	call   0x40427c
408d98:	50                   	push   %eax
408d99:	8b 45 f8             	mov    -0x8(%ebp),%eax
408d9c:	50                   	push   %eax
408d9d:	8b 45 08             	mov    0x8(%ebp),%eax
408da0:	50                   	push   %eax
408da1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408da4:	8b d3                	mov    %ebx,%edx
408da6:	4a                   	dec    %edx
408da7:	8b 06                	mov    (%esi),%eax
408da9:	e8 5e fb ff ff       	call   0x40890c
408dae:	8b d3                	mov    %ebx,%edx
408db0:	4a                   	dec    %edx
408db1:	3b c2                	cmp    %edx,%eax
408db3:	7d c9                	jge    0x408d7e
408db5:	8b d6                	mov    %esi,%edx
408db7:	92                   	xchg   %eax,%edx
408db8:	e8 4b b8 ff ff       	call   0x404608
408dbd:	eb 0e                	jmp    0x408dcd
408dbf:	8d 95 f8 ef ff ff    	lea    -0x1008(%ebp),%edx
408dc5:	8b ce                	mov    %esi,%ecx
408dc7:	91                   	xchg   %eax,%ecx
408dc8:	e8 df b2 ff ff       	call   0x4040ac
408dcd:	5e                   	pop    %esi
408dce:	5b                   	pop    %ebx
408dcf:	8b e5                	mov    %ebp,%esp
408dd1:	5d                   	pop    %ebp
408dd2:	c2 04 00             	ret    $0x4
408dd5:	8d 40 00             	lea    0x0(%eax),%eax
408dd8:	56                   	push   %esi
408dd9:	31 f6                	xor    %esi,%esi
408ddb:	aa                   	stos   %al,%es:(%edi)
408ddc:	08 db                	or     %bl,%bl
408dde:	75 04                	jne    0x408de4
408de0:	31 d2                	xor    %edx,%edx
408de2:	eb 0a                	jmp    0x408dee
408de4:	09 d2                	or     %edx,%edx
408de6:	7d 06                	jge    0x408dee
408de8:	b0 2d                	mov    $0x2d,%al
408dea:	f7 da                	neg    %edx
408dec:	eb 06                	jmp    0x408df4
408dee:	08 e4                	or     %ah,%ah
408df0:	74 03                	je     0x408df5
408df2:	88 e0                	mov    %ah,%al
408df4:	aa                   	stos   %al,%es:(%edi)
408df5:	92                   	xchg   %eax,%edx
408df6:	50                   	push   %eax
408df7:	89 e3                	mov    %esp,%ebx
408df9:	31 d2                	xor    %edx,%edx
408dfb:	f7 b6 74 d1 45 00    	divl   0x45d174(%esi)
408e01:	80 c2 30             	add    $0x30,%dl
408e04:	88 13                	mov    %dl,(%ebx)
408e06:	43                   	inc    %ebx
408e07:	49                   	dec    %ecx
408e08:	09 c0                	or     %eax,%eax
408e0a:	75 ed                	jne    0x408df9
408e0c:	09 c9                	or     %ecx,%ecx
408e0e:	7f e9                	jg     0x408df9
408e10:	4b                   	dec    %ebx
408e11:	8a 03                	mov    (%ebx),%al
408e13:	aa                   	stos   %al,%es:(%edi)
408e14:	39 e3                	cmp    %esp,%ebx
408e16:	75 f8                	jne    0x408e10
408e18:	58                   	pop    %eax
408e19:	5e                   	pop    %esi
408e1a:	c3                   	ret
408e1b:	90                   	nop
408e1c:	55                   	push   %ebp
408e1d:	8b ec                	mov    %esp,%ebp
408e1f:	83 c4 d4             	add    $0xffffffd4,%esp
408e22:	57                   	push   %edi
408e23:	56                   	push   %esi
408e24:	53                   	push   %ebx
408e25:	89 45 fc             	mov    %eax,-0x4(%ebp)
408e28:	a0 87 96 46 00       	mov    0x469687,%al
408e2d:	88 45 fb             	mov    %al,-0x5(%ebp)
408e30:	a0 86 96 46 00       	mov    0x469686,%al
408e35:	88 45 fa             	mov    %al,-0x6(%ebp)
408e38:	a1 80 96 46 00       	mov    0x469680,%eax
408e3d:	89 45 f4             	mov    %eax,-0xc(%ebp)
408e40:	a0 84 96 46 00       	mov    0x469684,%al
408e45:	88 45 f3             	mov    %al,-0xd(%ebp)
408e48:	a0 85 96 46 00       	mov    0x469685,%al
408e4d:	88 45 f2             	mov    %al,-0xe(%ebp)
408e50:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
408e57:	b8 13 00 00 00       	mov    $0x13,%eax
408e5c:	80 f9 00             	cmp    $0x0,%cl
408e5f:	75 17                	jne    0x408e78
408e61:	8b 45 0c             	mov    0xc(%ebp),%eax
408e64:	83 f8 02             	cmp    $0x2,%eax
408e67:	7d 05                	jge    0x408e6e
408e69:	b8 02 00 00 00       	mov    $0x2,%eax
408e6e:	83 f8 12             	cmp    $0x12,%eax
408e71:	7e 05                	jle    0x408e78
408e73:	b8 12 00 00 00       	mov    $0x12,%eax
408e78:	89 45 0c             	mov    %eax,0xc(%ebp)
408e7b:	50                   	push   %eax
408e7c:	b8 0f 27 00 00       	mov    $0x270f,%eax
408e81:	80 7d 10 02          	cmpb   $0x2,0x10(%ebp)
408e85:	72 03                	jb     0x408e8a
408e87:	8b 45 08             	mov    0x8(%ebp),%eax
408e8a:	50                   	push   %eax
408e8b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
408e8e:	e8 5d 02 00 00       	call   0x4090f0
408e93:	8b 7d fc             	mov    -0x4(%ebp),%edi
408e96:	0f b7 45 d4          	movzwl -0x2c(%ebp),%eax
408e9a:	2d ff 7f 00 00       	sub    $0x7fff,%eax
408e9f:	83 f8 02             	cmp    $0x2,%eax
408ea2:	73 1a                	jae    0x408ebe
408ea4:	89 c1                	mov    %eax,%ecx
408ea6:	e8 70 00 00 00       	call   0x408f1b
408eab:	8d b4 49 0c 8f 40 00 	lea    0x408f0c(%ecx,%ecx,2),%esi
408eb2:	03 75 ec             	add    -0x14(%ebp),%esi
408eb5:	b9 03 00 00 00       	mov    $0x3,%ecx
408eba:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
408ebc:	eb 2d                	jmp    0x408eeb
408ebe:	8d 75 d7             	lea    -0x29(%ebp),%esi
408ec1:	0f b6 5d 10          	movzbl 0x10(%ebp),%ebx
408ec5:	80 fb 01             	cmp    $0x1,%bl
408ec8:	74 10                	je     0x408eda
408eca:	80 fb 04             	cmp    $0x4,%bl
408ecd:	77 09                	ja     0x408ed8
408ecf:	0f bf 45 d4          	movswl -0x2c(%ebp),%eax
408ed3:	3b 45 0c             	cmp    0xc(%ebp),%eax
408ed6:	7e 02                	jle    0x408eda
408ed8:	b3 00                	mov    $0x0,%bl
408eda:	8d 1c 9d f8 8e 40 00 	lea    0x408ef8(,%ebx,4),%ebx
408ee1:	03 5d ec             	add    -0x14(%ebp),%ebx
408ee4:	8b 1b                	mov    (%ebx),%ebx
408ee6:	03 5d ec             	add    -0x14(%ebp),%ebx
408ee9:	ff d3                	call   *%ebx
408eeb:	89 f8                	mov    %edi,%eax
408eed:	2b 45 fc             	sub    -0x4(%ebp),%eax
408ef0:	5b                   	pop    %ebx
408ef1:	5e                   	pop    %esi
408ef2:	5f                   	pop    %edi
408ef3:	e9 f1 01 00 00       	jmp    0x4090e9
408ef8:	25 8f 40 00 81       	and    $0x8100408f,%eax
408efd:	8f 40 00             	pop    0x0(%eax)
408f00:	b8 8f 40 00 b8       	mov    $0xb800408f,%eax
408f05:	8f 40 00             	pop    0x0(%eax)
408f08:	22 90 40 00 49 4e    	and    0x4e490040(%eax),%dl
408f0e:	46                   	inc    %esi
408f0f:	4e                   	dec    %esi
408f10:	41                   	inc    %ecx
408f11:	4e                   	dec    %esi
408f12:	ac                   	lods   %ds:(%esi),%al
408f13:	08 c0                	or     %al,%al
408f15:	75 03                	jne    0x408f1a
408f17:	b0 30                	mov    $0x30,%al
408f19:	4e                   	dec    %esi
408f1a:	c3                   	ret
408f1b:	80 7d d6 00          	cmpb   $0x0,-0x2a(%ebp)
408f1f:	74 03                	je     0x408f24
408f21:	b0 2d                	mov    $0x2d,%al
408f23:	aa                   	stos   %al,%es:(%edi)
408f24:	c3                   	ret
408f25:	e8 f1 ff ff ff       	call   0x408f1b
408f2a:	0f bf 4d d4          	movswl -0x2c(%ebp),%ecx
408f2e:	31 d2                	xor    %edx,%edx
408f30:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
408f33:	7f 1d                	jg     0x408f52
408f35:	83 f9 fd             	cmp    $0xfffffffd,%ecx
408f38:	7c 18                	jl     0x408f52
408f3a:	09 c9                	or     %ecx,%ecx
408f3c:	7f 1a                	jg     0x408f58
408f3e:	b0 30                	mov    $0x30,%al
408f40:	aa                   	stos   %al,%es:(%edi)
408f41:	80 3e 00             	cmpb   $0x0,(%esi)
408f44:	74 3a                	je     0x408f80
408f46:	8a 45 fb             	mov    -0x5(%ebp),%al
408f49:	aa                   	stos   %al,%es:(%edi)
408f4a:	f7 d9                	neg    %ecx
408f4c:	b0 30                	mov    $0x30,%al
408f4e:	f3 aa                	rep stos %al,%es:(%edi)