407b96:	8d 45 c8             	lea    -0x38(%ebp),%eax
407b99:	50                   	push   %eax
407b9a:	e8 d8 00 00 00       	call   0x407c77
407b9f:	83 c4 10             	add    $0x10,%esp
407ba2:	8b c7                	mov    %edi,%eax
407ba4:	4f                   	dec    %edi
407ba5:	85 c0                	test   %eax,%eax
407ba7:	75 d0                	jne    0x407b79
407ba9:	eb 15                	jmp    0x407bc0
407bab:	8d 45 ec             	lea    -0x14(%ebp),%eax
407bae:	50                   	push   %eax
407baf:	ff 75 08             	push   0x8(%ebp)
407bb2:	ff 75 f4             	push   -0xc(%ebp)
407bb5:	ff 75 f8             	push   -0x8(%ebp)
407bb8:	e8 ba 00 00 00       	call   0x407c77
407bbd:	83 c4 10             	add    $0x10,%esp
407bc0:	f6 45 fc 04          	testb  $0x4,-0x4(%ebp)
407bc4:	74 12                	je     0x407bd8
407bc6:	8d 45 ec             	lea    -0x14(%ebp),%eax
407bc9:	50                   	push   %eax
407bca:	ff 75 08             	push   0x8(%ebp)
407bcd:	56                   	push   %esi
407bce:	6a 20                	push   $0x20
407bd0:	e8 71 00 00 00       	call   0x407c46
407bd5:	83 c4 10             	add    $0x10,%esp
407bd8:	8b 7d 0c             	mov    0xc(%ebp),%edi
407bdb:	8a 1f                	mov    (%edi),%bl
407bdd:	47                   	inc    %edi
407bde:	84 db                	test   %bl,%bl
407be0:	89 7d 0c             	mov    %edi,0xc(%ebp)
407be3:	0f 85 13 f9 ff ff    	jne    0x4074fc
407be9:	8b 45 ec             	mov    -0x14(%ebp),%eax
407bec:	5f                   	pop    %edi
407bed:	5e                   	pop    %esi
407bee:	5b                   	pop    %ebx
407bef:	c9                   	leave
407bf0:	c3                   	ret
407bf1:	6f                   	outsl  %ds:(%esi),(%dx)
407bf2:	76 40                	jbe    0x407c34
407bf4:	00 45 75             	add    %al,0x75(%ebp)
407bf7:	40                   	inc    %eax
407bf8:	00 60 75             	add    %ah,0x75(%eax)
407bfb:	40                   	inc    %eax
407bfc:	00 ac 75 40 00 e3 75 	add    %ch,0x75e30040(%ebp,%esi,2)
407c03:	40                   	inc    %eax
407c04:	00 eb                	add    %ch,%bl
407c06:	75 40                	jne    0x407c48
407c08:	00 20                	add    %ah,(%eax)
407c0a:	76 40                	jbe    0x407c4c
407c0c:	00 b3 76 40 00 55    	add    %dh,0x55004076(%ebx)
407c12:	8b ec                	mov    %esp,%ebp
407c14:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407c17:	ff 49 04             	decl   0x4(%ecx)
407c1a:	78 0e                	js     0x407c2a
407c1c:	8b 11                	mov    (%ecx),%edx
407c1e:	8a 45 08             	mov    0x8(%ebp),%al
407c21:	88 02                	mov    %al,(%edx)
407c23:	ff 01                	incl   (%ecx)
407c25:	0f b6 c0             	movzbl %al,%eax
407c28:	eb 0b                	jmp    0x407c35
407c2a:	51                   	push   %ecx
407c2b:	ff 75 08             	push   0x8(%ebp)
407c2e:	e8 51 01 00 00       	call   0x407d84
407c33:	59                   	pop    %ecx
407c34:	59                   	pop    %ecx
407c35:	83 f8 ff             	cmp    $0xffffffff,%eax
407c38:	8b 45 10             	mov    0x10(%ebp),%eax
407c3b:	75 05                	jne    0x407c42
407c3d:	83 08 ff             	orl    $0xffffffff,(%eax)
407c40:	5d                   	pop    %ebp
407c41:	c3                   	ret
407c42:	ff 00                	incl   (%eax)
407c44:	5d                   	pop    %ebp
407c45:	c3                   	ret
407c46:	56                   	push   %esi
407c47:	57                   	push   %edi
407c48:	8b 7c 24 10          	mov    0x10(%esp),%edi
407c4c:	8b c7                	mov    %edi,%eax
407c4e:	4f                   	dec    %edi
407c4f:	85 c0                	test   %eax,%eax
407c51:	7e 21                	jle    0x407c74
407c53:	8b 74 24 18          	mov    0x18(%esp),%esi
407c57:	56                   	push   %esi
407c58:	ff 74 24 18          	push   0x18(%esp)
407c5c:	ff 74 24 14          	push   0x14(%esp)
407c60:	e8 ac ff ff ff       	call   0x407c11
407c65:	83 c4 0c             	add    $0xc,%esp
407c68:	83 3e ff             	cmpl   $0xffffffff,(%esi)
407c6b:	74 07                	je     0x407c74
407c6d:	8b c7                	mov    %edi,%eax
407c6f:	4f                   	dec    %edi
407c70:	85 c0                	test   %eax,%eax
407c72:	7f e3                	jg     0x407c57
407c74:	5f                   	pop    %edi
407c75:	5e                   	pop    %esi
407c76:	c3                   	ret
407c77:	53                   	push   %ebx
407c78:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
407c7c:	8b c3                	mov    %ebx,%eax
407c7e:	4b                   	dec    %ebx
407c7f:	56                   	push   %esi
407c80:	57                   	push   %edi
407c81:	85 c0                	test   %eax,%eax
407c83:	7e 26                	jle    0x407cab
407c85:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
407c89:	8b 74 24 10          	mov    0x10(%esp),%esi
407c8d:	0f be 06             	movsbl (%esi),%eax
407c90:	57                   	push   %edi
407c91:	46                   	inc    %esi
407c92:	ff 74 24 1c          	push   0x1c(%esp)
407c96:	50                   	push   %eax
407c97:	e8 75 ff ff ff       	call   0x407c11
407c9c:	83 c4 0c             	add    $0xc,%esp
407c9f:	83 3f ff             	cmpl   $0xffffffff,(%edi)
407ca2:	74 07                	je     0x407cab
407ca4:	8b c3                	mov    %ebx,%eax
407ca6:	4b                   	dec    %ebx
407ca7:	85 c0                	test   %eax,%eax
407ca9:	7f e2                	jg     0x407c8d
407cab:	5f                   	pop    %edi
407cac:	5e                   	pop    %esi
407cad:	5b                   	pop    %ebx
407cae:	c3                   	ret
407caf:	8b 44 24 04          	mov    0x4(%esp),%eax
407cb3:	83 00 04             	addl   $0x4,(%eax)
407cb6:	8b 00                	mov    (%eax),%eax
407cb8:	8b 40 fc             	mov    -0x4(%eax),%eax
407cbb:	c3                   	ret
407cbc:	8b 44 24 04          	mov    0x4(%esp),%eax
407cc0:	83 00 08             	addl   $0x8,(%eax)
407cc3:	8b 08                	mov    (%eax),%ecx
407cc5:	8b 41 f8             	mov    -0x8(%ecx),%eax
407cc8:	8b 51 fc             	mov    -0x4(%ecx),%edx
407ccb:	c3                   	ret
407ccc:	8b 44 24 04          	mov    0x4(%esp),%eax
407cd0:	83 00 04             	addl   $0x4,(%eax)
407cd3:	8b 00                	mov    (%eax),%eax
407cd5:	66 8b 40 fc          	mov    -0x4(%eax),%ax
407cd9:	c3                   	ret
407cda:	55                   	push   %ebp
407cdb:	8b ec                	mov    %esp,%ebp
407cdd:	51                   	push   %ecx
407cde:	8b 45 08             	mov    0x8(%ebp),%eax
407ce1:	8d 48 01             	lea    0x1(%eax),%ecx
407ce4:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
407cea:	77 0c                	ja     0x407cf8
407cec:	8b 0d ec 09 41 00    	mov    0x4109ec,%ecx
407cf2:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
407cf6:	eb 52                	jmp    0x407d4a
407cf8:	8b c8                	mov    %eax,%ecx
407cfa:	56                   	push   %esi
407cfb:	8b 35 ec 09 41 00    	mov    0x4109ec,%esi
407d01:	c1 f9 08             	sar    $0x8,%ecx
407d04:	0f b6 d1             	movzbl %cl,%edx
407d07:	f6 44 56 01 80       	testb  $0x80,0x1(%esi,%edx,2)
407d0c:	5e                   	pop    %esi
407d0d:	74 0e                	je     0x407d1d
407d0f:	80 65 fe 00          	andb   $0x0,-0x2(%ebp)
407d13:	88 4d fc             	mov    %cl,-0x4(%ebp)
407d16:	88 45 fd             	mov    %al,-0x3(%ebp)
407d19:	6a 02                	push   $0x2
407d1b:	eb 09                	jmp    0x407d26
407d1d:	80 65 fd 00          	andb   $0x0,-0x3(%ebp)
407d21:	88 45 fc             	mov    %al,-0x4(%ebp)
407d24:	6a 01                	push   $0x1
407d26:	58                   	pop    %eax
407d27:	8d 4d 0a             	lea    0xa(%ebp),%ecx
407d2a:	6a 01                	push   $0x1
407d2c:	6a 00                	push   $0x0
407d2e:	6a 00                	push   $0x0
407d30:	51                   	push   %ecx
407d31:	50                   	push   %eax
407d32:	8d 45 fc             	lea    -0x4(%ebp),%eax
407d35:	50                   	push   %eax
407d36:	6a 01                	push   $0x1
407d38:	e8 38 34 00 00       	call   0x40b175
407d3d:	83 c4 1c             	add    $0x1c,%esp
407d40:	85 c0                	test   %eax,%eax
407d42:	75 02                	jne    0x407d46
407d44:	c9                   	leave
407d45:	c3                   	ret
407d46:	0f b7 45 0a          	movzwl 0xa(%ebp),%eax
407d4a:	23 45 0c             	and    0xc(%ebp),%eax
407d4d:	c9                   	leave
407d4e:	c3                   	ret
407d4f:	cc                   	int3
407d50:	8b 44 24 08          	mov    0x8(%esp),%eax
407d54:	8b 4c 24 10          	mov    0x10(%esp),%ecx
407d58:	0b c8                	or     %eax,%ecx
407d5a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
407d5e:	75 09                	jne    0x407d69
407d60:	8b 44 24 04          	mov    0x4(%esp),%eax
407d64:	f7 e1                	mul    %ecx
407d66:	c2 10 00             	ret    $0x10
407d69:	53                   	push   %ebx
407d6a:	f7 e1                	mul    %ecx
407d6c:	8b d8                	mov    %eax,%ebx
407d6e:	8b 44 24 08          	mov    0x8(%esp),%eax
407d72:	f7 64 24 14          	mull   0x14(%esp)
407d76:	03 d8                	add    %eax,%ebx
407d78:	8b 44 24 08          	mov    0x8(%esp),%eax
407d7c:	f7 e1                	mul    %ecx
407d7e:	03 d3                	add    %ebx,%edx
407d80:	5b                   	pop    %ebx
407d81:	c2 10 00             	ret    $0x10
407d84:	55                   	push   %ebp
407d85:	8b ec                	mov    %esp,%ebp
407d87:	53                   	push   %ebx
407d88:	56                   	push   %esi
407d89:	8b 75 0c             	mov    0xc(%ebp),%esi
407d8c:	8b 46 0c             	mov    0xc(%esi),%eax
407d8f:	8b 5e 10             	mov    0x10(%esi),%ebx
407d92:	a8 82                	test   $0x82,%al
407d94:	0f 84 f6 00 00 00    	je     0x407e90
407d9a:	a8 40                	test   $0x40,%al
407d9c:	0f 85 ee 00 00 00    	jne    0x407e90
407da2:	a8 01                	test   $0x1,%al
407da4:	74 16                	je     0x407dbc
407da6:	83 66 04 00          	andl   $0x0,0x4(%esi)
407daa:	a8 10                	test   $0x10,%al
407dac:	0f 84 de 00 00 00    	je     0x407e90
407db2:	8b 4e 08             	mov    0x8(%esi),%ecx
407db5:	24 fe                	and    $0xfe,%al
407db7:	89 0e                	mov    %ecx,(%esi)
407db9:	89 46 0c             	mov    %eax,0xc(%esi)
407dbc:	8b 46 0c             	mov    0xc(%esi),%eax
407dbf:	83 66 04 00          	andl   $0x0,0x4(%esi)
407dc3:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
407dc7:	24 ef                	and    $0xef,%al
407dc9:	0c 02                	or     $0x2,%al
407dcb:	66 a9 0c 01          	test   $0x10c,%ax
407dcf:	89 46 0c             	mov    %eax,0xc(%esi)
407dd2:	75 22                	jne    0x407df6
407dd4:	81 fe a0 05 41 00    	cmp    $0x4105a0,%esi
407dda:	74 08                	je     0x407de4
407ddc:	81 fe c0 05 41 00    	cmp    $0x4105c0,%esi
407de2:	75 0b                	jne    0x407def
407de4:	53                   	push   %ebx
407de5:	e8 7b 32 00 00       	call   0x40b065
407dea:	85 c0                	test   %eax,%eax
407dec:	59                   	pop    %ecx
407ded:	75 07                	jne    0x407df6
407def:	56                   	push   %esi
407df0:	e8 8e 18 00 00       	call   0x409683
407df5:	59                   	pop    %ecx
407df6:	66 f7 46 0c 08 01    	testw  $0x108,0xc(%esi)
407dfc:	57                   	push   %edi
407dfd:	74 67                	je     0x407e66
407dff:	8b 46 08             	mov    0x8(%esi),%eax
407e02:	8b 3e                	mov    (%esi),%edi
407e04:	2b f8                	sub    %eax,%edi
407e06:	8d 48 01             	lea    0x1(%eax),%ecx
407e09:	89 0e                	mov    %ecx,(%esi)
407e0b:	8b 4e 18             	mov    0x18(%esi),%ecx
407e0e:	49                   	dec    %ecx
407e0f:	85 ff                	test   %edi,%edi
407e11:	89 4e 04             	mov    %ecx,0x4(%esi)
407e14:	7e 10                	jle    0x407e26
407e16:	57                   	push   %edi
407e17:	50                   	push   %eax
407e18:	53                   	push   %ebx
407e19:	e8 75 16 00 00       	call   0x409493
407e1e:	83 c4 0c             	add    $0xc,%esp
407e21:	89 45 0c             	mov    %eax,0xc(%ebp)
407e24:	eb 36                	jmp    0x407e5c
407e26:	83 fb ff             	cmp    $0xffffffff,%ebx
407e29:	74 19                	je     0x407e44
407e2b:	8b cb                	mov    %ebx,%ecx
407e2d:	8b c3                	mov    %ebx,%eax
407e2f:	c1 f9 05             	sar    $0x5,%ecx
407e32:	83 e0 1f             	and    $0x1f,%eax
407e35:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
407e3c:	8d 04 c0             	lea    (%eax,%eax,8),%eax
407e3f:	8d 04 81             	lea    (%ecx,%eax,4),%eax
407e42:	eb 05                	jmp    0x407e49
407e44:	b8 08 0e 41 00       	mov    $0x410e08,%eax
407e49:	f6 40 04 20          	testb  $0x20,0x4(%eax)
407e4d:	74 0d                	je     0x407e5c
407e4f:	6a 02                	push   $0x2
407e51:	6a 00                	push   $0x0
407e53:	53                   	push   %ebx
407e54:	e8 02 1b 00 00       	call   0x40995b
407e59:	83 c4 0c             	add    $0xc,%esp
407e5c:	8b 46 08             	mov    0x8(%esi),%eax
407e5f:	8a 4d 08             	mov    0x8(%ebp),%cl
407e62:	88 08                	mov    %cl,(%eax)
407e64:	eb 14                	jmp    0x407e7a
407e66:	6a 01                	push   $0x1
407e68:	8d 45 08             	lea    0x8(%ebp),%eax
407e6b:	5f                   	pop    %edi
407e6c:	57                   	push   %edi
407e6d:	50                   	push   %eax
407e6e:	53                   	push   %ebx
407e6f:	e8 1f 16 00 00       	call   0x409493
407e74:	83 c4 0c             	add    $0xc,%esp
407e77:	89 45 0c             	mov    %eax,0xc(%ebp)
407e7a:	39 7d 0c             	cmp    %edi,0xc(%ebp)
407e7d:	5f                   	pop    %edi
407e7e:	74 06                	je     0x407e86
407e80:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
407e84:	eb 0f                	jmp    0x407e95
407e86:	8b 45 08             	mov    0x8(%ebp),%eax
407e89:	25 ff 00 00 00       	and    $0xff,%eax
407e8e:	eb 08                	jmp    0x407e98
407e90:	0c 20                	or     $0x20,%al
407e92:	89 46 0c             	mov    %eax,0xc(%esi)
407e95:	83 c8 ff             	or     $0xffffffff,%eax
407e98:	5e                   	pop    %esi
407e99:	5b                   	pop    %ebx
407e9a:	5d                   	pop    %ebp
407e9b:	c3                   	ret
407e9c:	55                   	push   %ebp
407e9d:	8b ec                	mov    %esp,%ebp
407e9f:	51                   	push   %ecx
407ea0:	53                   	push   %ebx
407ea1:	56                   	push   %esi
407ea2:	e8 20 08 00 00       	call   0x4086c7
407ea7:	8b f0                	mov    %eax,%esi
407ea9:	ff 76 50             	push   0x50(%esi)
407eac:	ff 75 08             	push   0x8(%ebp)
407eaf:	e8 26 01 00 00       	call   0x407fda
407eb4:	59                   	pop    %ecx
407eb5:	85 c0                	test   %eax,%eax
407eb7:	59                   	pop    %ecx
407eb8:	0f 84 0f 01 00 00    	je     0x407fcd
407ebe:	8b 58 08             	mov    0x8(%eax),%ebx
407ec1:	85 db                	test   %ebx,%ebx
407ec3:	89 5d 08             	mov    %ebx,0x8(%ebp)
407ec6:	0f 84 01 01 00 00    	je     0x407fcd
407ecc:	83 fb 05             	cmp    $0x5,%ebx
407ecf:	75 0c                	jne    0x407edd
407ed1:	83 60 08 00          	andl   $0x0,0x8(%eax)
407ed5:	6a 01                	push   $0x1
407ed7:	58                   	pop    %eax
407ed8:	e9 f9 00 00 00       	jmp    0x407fd6
407edd:	83 fb 01             	cmp    $0x1,%ebx
407ee0:	0f 84 e2 00 00 00    	je     0x407fc8
407ee6:	8b 4e 54             	mov    0x54(%esi),%ecx
407ee9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407eec:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407eef:	89 4e 54             	mov    %ecx,0x54(%esi)
407ef2:	8b 48 04             	mov    0x4(%eax),%ecx
407ef5:	83 f9 08             	cmp    $0x8,%ecx
407ef8:	0f 85 bc 00 00 00    	jne    0x407fba
407efe:	8b 15 f8 0d 41 00    	mov    0x410df8,%edx
407f04:	8b 0d fc 0d 41 00    	mov    0x410dfc,%ecx
407f0a:	03 ca                	add    %edx,%ecx
407f0c:	57                   	push   %edi
407f0d:	3b d1                	cmp    %ecx,%edx
407f0f:	7d 27                	jge    0x407f38