407c07:	57                   	push   %edi
407c08:	8b 7d 14             	mov    0x14(%ebp),%edi
407c0b:	6a 18                	push   $0x18
407c0d:	e8 04 8e 02 00       	call   0x430a16
407c12:	33 db                	xor    %ebx,%ebx
407c14:	8b f0                	mov    %eax,%esi
407c16:	83 c4 04             	add    $0x4,%esp
407c19:	89 1e                	mov    %ebx,(%esi)
407c1b:	89 5e 04             	mov    %ebx,0x4(%esi)
407c1e:	89 5e 08             	mov    %ebx,0x8(%esi)
407c21:	89 5e 0c             	mov    %ebx,0xc(%esi)
407c24:	89 5e 10             	mov    %ebx,0x10(%esi)
407c27:	3b fb                	cmp    %ebx,%edi
407c29:	75 04                	jne    0x407c2f
407c2b:	33 c0                	xor    %eax,%eax
407c2d:	eb 09                	jmp    0x407c38
407c2f:	57                   	push   %edi
407c30:	e8 63 06 04 00       	call   0x448298
407c35:	83 c4 04             	add    $0x4,%esp
407c38:	89 46 14             	mov    %eax,0x14(%esi)
407c3b:	8b 45 10             	mov    0x10(%ebp),%eax
407c3e:	89 46 10             	mov    %eax,0x10(%esi)
407c41:	8b 7d 0c             	mov    0xc(%ebp),%edi
407c44:	3b fb                	cmp    %ebx,%edi
407c46:	74 17                	je     0x407c5f
407c48:	8b 4f 08             	mov    0x8(%edi),%ecx
407c4b:	8b 57 04             	mov    0x4(%edi),%edx
407c4e:	51                   	push   %ecx
407c4f:	52                   	push   %edx
407c50:	56                   	push   %esi
407c51:	e8 ea e5 ff ff       	call   0x406240
407c56:	8b 3f                	mov    (%edi),%edi
407c58:	83 c4 0c             	add    $0xc,%esp
407c5b:	3b fb                	cmp    %ebx,%edi
407c5d:	75 e9                	jne    0x407c48
407c5f:	39 5c 24 18          	cmp    %ebx,0x18(%esp)
407c63:	74 68                	je     0x407ccd
407c65:	8b 6d 04             	mov    0x4(%ebp),%ebp
407c68:	3b eb                	cmp    %ebx,%ebp
407c6a:	74 61                	je     0x407ccd
407c6c:	8d 64 24 00          	lea    0x0(%esp),%esp
407c70:	8b 44 24 18          	mov    0x18(%esp),%eax
407c74:	50                   	push   %eax
407c75:	55                   	push   %ebp
407c76:	e8 85 ff ff ff       	call   0x407c00
407c7b:	8b 7e 04             	mov    0x4(%esi),%edi
407c7e:	8b d8                	mov    %eax,%ebx
407c80:	8b 4b 14             	mov    0x14(%ebx),%ecx
407c83:	83 c4 08             	add    $0x8,%esp
407c86:	89 4c 24 14          	mov    %ecx,0x14(%esp)
407c8a:	85 ff                	test   %edi,%edi
407c8c:	74 1d                	je     0x407cab
407c8e:	8b ff                	mov    %edi,%edi
407c90:	8b 57 14             	mov    0x14(%edi),%edx
407c93:	8b 44 24 14          	mov    0x14(%esp),%eax
407c97:	52                   	push   %edx
407c98:	50                   	push   %eax
407c99:	e8 f9 b8 02 00       	call   0x433597
407c9e:	83 c4 08             	add    $0x8,%esp
407ca1:	85 c0                	test   %eax,%eax
407ca3:	74 06                	je     0x407cab
407ca5:	8b 3f                	mov    (%edi),%edi
407ca7:	85 ff                	test   %edi,%edi
407ca9:	75 e5                	jne    0x407c90
407cab:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
407caf:	75 03                	jne    0x407cb4
407cb1:	89 5e 04             	mov    %ebx,0x4(%esi)
407cb4:	8b 46 08             	mov    0x8(%esi),%eax
407cb7:	85 c0                	test   %eax,%eax
407cb9:	74 02                	je     0x407cbd
407cbb:	89 18                	mov    %ebx,(%eax)
407cbd:	89 5e 08             	mov    %ebx,0x8(%esi)
407cc0:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
407cc6:	8b 6d 00             	mov    0x0(%ebp),%ebp
407cc9:	85 ed                	test   %ebp,%ebp
407ccb:	75 a3                	jne    0x407c70
407ccd:	5f                   	pop    %edi
407cce:	8b c6                	mov    %esi,%eax
407cd0:	5e                   	pop    %esi
407cd1:	5d                   	pop    %ebp
407cd2:	5b                   	pop    %ebx
407cd3:	c3                   	ret
407cd4:	cc                   	int3
407cd5:	cc                   	int3
407cd6:	cc                   	int3
407cd7:	cc                   	int3
407cd8:	cc                   	int3
407cd9:	cc                   	int3
407cda:	cc                   	int3
407cdb:	cc                   	int3
407cdc:	cc                   	int3
407cdd:	cc                   	int3
407cde:	cc                   	int3
407cdf:	cc                   	int3
407ce0:	b8 18 05 01 00       	mov    $0x10518,%eax
407ce5:	e8 a6 91 02 00       	call   0x430e90
407cea:	8b 84 24 24 05 01 00 	mov    0x10524(%esp),%eax
407cf1:	53                   	push   %ebx
407cf2:	56                   	push   %esi
407cf3:	8b 70 14             	mov    0x14(%eax),%esi
407cf6:	33 db                	xor    %ebx,%ebx
407cf8:	89 5c 24 08          	mov    %ebx,0x8(%esp)
407cfc:	8b ce                	mov    %esi,%ecx
407cfe:	b8 7c c0 45 00       	mov    $0x45c07c,%eax
407d03:	66 8b 10             	mov    (%eax),%dx
407d06:	66 3b 11             	cmp    (%ecx),%dx
407d09:	75 1e                	jne    0x407d29
407d0b:	66 3b d3             	cmp    %bx,%dx
407d0e:	74 15                	je     0x407d25
407d10:	66 8b 50 02          	mov    0x2(%eax),%dx
407d14:	66 3b 51 02          	cmp    0x2(%ecx),%dx
407d18:	75 0f                	jne    0x407d29
407d1a:	83 c0 04             	add    $0x4,%eax
407d1d:	83 c1 04             	add    $0x4,%ecx
407d20:	66 3b d3             	cmp    %bx,%dx
407d23:	75 de                	jne    0x407d03
407d25:	33 c0                	xor    %eax,%eax
407d27:	eb 05                	jmp    0x407d2e
407d29:	1b c0                	sbb    %eax,%eax
407d2b:	83 d8 ff             	sbb    $0xffffffff,%eax
407d2e:	3b c3                	cmp    %ebx,%eax
407d30:	75 1f                	jne    0x407d51
407d32:	e8 39 b0 ff ff       	call   0x402d70
407d37:	50                   	push   %eax
407d38:	68 20 ce 45 00       	push   $0x45ce20
407d3d:	8d 4c 24 14          	lea    0x14(%esp),%ecx
407d41:	68 04 01 00 00       	push   $0x104
407d46:	51                   	push   %ecx
407d47:	e8 13 89 02 00       	call   0x43065f
407d4c:	83 c4 10             	add    $0x10,%esp
407d4f:	eb 1e                	jmp    0x407d6f
407d51:	56                   	push   %esi
407d52:	e8 19 b0 ff ff       	call   0x402d70
407d57:	50                   	push   %eax
407d58:	68 04 ce 45 00       	push   $0x45ce04
407d5d:	8d 54 24 18          	lea    0x18(%esp),%edx
407d61:	68 04 01 00 00       	push   $0x104
407d66:	52                   	push   %edx
407d67:	e8 f3 88 02 00       	call   0x43065f
407d6c:	83 c4 14             	add    $0x14,%esp
407d6f:	8b b4 24 28 05 01 00 	mov    0x10528(%esp),%esi
407d76:	33 c0                	xor    %eax,%eax
407d78:	66 89 84 24 12 02 00 	mov    %ax,0x212(%esp)
407d7f:	00
407d80:	8b 46 0c             	mov    0xc(%esi),%eax
407d83:	33 c9                	xor    %ecx,%ecx
407d85:	3b c3                	cmp    %ebx,%eax
407d87:	74 0e                	je     0x407d97
407d89:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
407d90:	8b 00                	mov    (%eax),%eax
407d92:	41                   	inc    %ecx
407d93:	3b c3                	cmp    %ebx,%eax
407d95:	75 f9                	jne    0x407d90
407d97:	51                   	push   %ecx
407d98:	68 00 ce 45 00       	push   $0x45ce00
407d9d:	8d 8c 24 28 05 00 00 	lea    0x528(%esp),%ecx
407da4:	68 00 00 01 00       	push   $0x10000
407da9:	51                   	push   %ecx
407daa:	e8 14 90 02 00       	call   0x430dc3
407daf:	8b 76 0c             	mov    0xc(%esi),%esi
407db2:	83 c4 10             	add    $0x10,%esp
407db5:	88 9c 24 1f 05 01 00 	mov    %bl,0x1051f(%esp)
407dbc:	3b f3                	cmp    %ebx,%esi
407dbe:	74 69                	je     0x407e29
407dc0:	8b 56 08             	mov    0x8(%esi),%edx
407dc3:	8b 46 04             	mov    0x4(%esi),%eax
407dc6:	52                   	push   %edx
407dc7:	50                   	push   %eax
407dc8:	68 f8 cd 45 00       	push   $0x45cdf8
407dcd:	8d 8c 24 20 02 00 00 	lea    0x220(%esp),%ecx
407dd4:	68 04 01 00 00       	push   $0x104
407dd9:	51                   	push   %ecx
407dda:	e8 e4 8f 02 00       	call   0x430dc3
407ddf:	8d 84 24 34 05 00 00 	lea    0x534(%esp),%eax
407de6:	83 c4 14             	add    $0x14,%esp
407de9:	88 9c 24 17 03 00 00 	mov    %bl,0x317(%esp)
407df0:	8d 50 01             	lea    0x1(%eax),%edx
407df3:	8a 08                	mov    (%eax),%cl
407df5:	40                   	inc    %eax
407df6:	3a cb                	cmp    %bl,%cl
407df8:	75 f9                	jne    0x407df3
407dfa:	2b c2                	sub    %edx,%eax
407dfc:	ba 00 00 01 00       	mov    $0x10000,%edx
407e01:	2b d0                	sub    %eax,%edx
407e03:	52                   	push   %edx
407e04:	8d 84 24 18 02 00 00 	lea    0x218(%esp),%eax
407e0b:	50                   	push   %eax
407e0c:	8d 8c 24 28 05 00 00 	lea    0x528(%esp),%ecx
407e13:	51                   	push   %ecx
407e14:	e8 b7 ad 02 00       	call   0x432bd0
407e19:	88 9c 24 2b 05 01 00 	mov    %bl,0x1052b(%esp)
407e20:	8b 36                	mov    (%esi),%esi
407e22:	83 c4 0c             	add    $0xc,%esp
407e25:	3b f3                	cmp    %ebx,%esi
407e27:	75 97                	jne    0x407dc0
407e29:	8d 84 24 20 05 00 00 	lea    0x520(%esp),%eax
407e30:	8d 50 01             	lea    0x1(%eax),%edx
407e33:	8a 08                	mov    (%eax),%cl
407e35:	40                   	inc    %eax
407e36:	3a cb                	cmp    %bl,%cl
407e38:	75 f9                	jne    0x407e33
407e3a:	2b c2                	sub    %edx,%eax
407e3c:	3d fe ff 00 00       	cmp    $0xfffe,%eax
407e41:	76 0e                	jbe    0x407e51
407e43:	5e                   	pop    %esi
407e44:	b8 7a 00 00 00       	mov    $0x7a,%eax
407e49:	5b                   	pop    %ebx
407e4a:	81 c4 18 05 01 00    	add    $0x10518,%esp
407e50:	c3                   	ret
407e51:	68 c4 c9 45 00       	push   $0x45c9c4
407e56:	68 10 a4 00 00       	push   $0xa410
407e5b:	8d 54 24 14          	lea    0x14(%esp),%edx
407e5f:	52                   	push   %edx
407e60:	68 b0 c9 45 00       	push   $0x45c9b0
407e65:	8d 84 24 28 03 00 00 	lea    0x328(%esp),%eax
407e6c:	68 04 01 00 00       	push   $0x104
407e71:	50                   	push   %eax
407e72:	e8 e8 87 02 00       	call   0x43065f
407e77:	8d 94 24 30 03 00 00 	lea    0x330(%esp),%edx
407e7e:	33 c9                	xor    %ecx,%ecx
407e80:	52                   	push   %edx
407e81:	66 89 8c 24 3a 05 00 	mov    %cx,0x53a(%esp)
407e88:	00
407e89:	e8 52 b7 ff ff       	call   0x4035e0
407e8e:	8d 44 24 24          	lea    0x24(%esp),%eax
407e92:	50                   	push   %eax
407e93:	8d 8c 24 40 05 00 00 	lea    0x540(%esp),%ecx
407e9a:	51                   	push   %ecx
407e9b:	8d 94 24 3c 03 00 00 	lea    0x33c(%esp),%edx
407ea2:	52                   	push   %edx
407ea3:	e8 c8 d2 ff ff       	call   0x405170
407ea8:	83 c4 28             	add    $0x28,%esp
407eab:	3b c3                	cmp    %ebx,%eax
407ead:	75 36                	jne    0x407ee5
407eaf:	8d 44 24 0c          	lea    0xc(%esp),%eax
407eb3:	8d 50 02             	lea    0x2(%eax),%edx
407eb6:	66 8b 08             	mov    (%eax),%cx
407eb9:	83 c0 02             	add    $0x2,%eax
407ebc:	66 3b cb             	cmp    %bx,%cx
407ebf:	75 f5                	jne    0x407eb6
407ec1:	2b c2                	sub    %edx,%eax
407ec3:	8b 94 24 24 05 01 00 	mov    0x10524(%esp),%edx
407eca:	d1 f8                	sar    $1,%eax
407ecc:	8d 44 00 02          	lea    0x2(%eax,%eax,1),%eax
407ed0:	50                   	push   %eax
407ed1:	8d 4c 24 10          	lea    0x10(%esp),%ecx
407ed5:	51                   	push   %ecx
407ed6:	6a 01                	push   $0x1
407ed8:	53                   	push   %ebx
407ed9:	68 7c c9 45 00       	push   $0x45c97c
407ede:	52                   	push   %edx
407edf:	ff 15 b8 33 47 00    	call   *0x4733b8
407ee5:	5e                   	pop    %esi
407ee6:	5b                   	pop    %ebx
407ee7:	81 c4 18 05 01 00    	add    $0x10518,%esp
407eed:	c3                   	ret
407eee:	cc                   	int3
407eef:	cc                   	int3
407ef0:	8b 44 24 04          	mov    0x4(%esp),%eax
407ef4:	85 c0                	test   %eax,%eax
407ef6:	74 4d                	je     0x407f45
407ef8:	8b 40 14             	mov    0x14(%eax),%eax
407efb:	85 c0                	test   %eax,%eax
407efd:	74 46                	je     0x407f45
407eff:	b9 7c c9 45 00       	mov    $0x45c97c,%ecx
407f04:	66 8b 10             	mov    (%eax),%dx
407f07:	66 3b 11             	cmp    (%ecx),%dx
407f0a:	75 28                	jne    0x407f34
407f0c:	66 85 d2             	test   %dx,%dx
407f0f:	74 15                	je     0x407f26
407f11:	66 8b 50 02          	mov    0x2(%eax),%dx
407f15:	66 3b 51 02          	cmp    0x2(%ecx),%dx
407f19:	75 19                	jne    0x407f34
407f1b:	83 c0 04             	add    $0x4,%eax
407f1e:	83 c1 04             	add    $0x4,%ecx
407f21:	66 85 d2             	test   %dx,%dx
407f24:	75 de                	jne    0x407f04
407f26:	33 c0                	xor    %eax,%eax
407f28:	f7 d8                	neg    %eax
407f2a:	1b c0                	sbb    %eax,%eax
407f2c:	f7 d0                	not    %eax
407f2e:	25 e0 7c 40 00       	and    $0x407ce0,%eax
407f33:	c3                   	ret
407f34:	1b c0                	sbb    %eax,%eax
407f36:	83 d8 ff             	sbb    $0xffffffff,%eax
407f39:	f7 d8                	neg    %eax
407f3b:	1b c0                	sbb    %eax,%eax
407f3d:	f7 d0                	not    %eax
407f3f:	25 e0 7c 40 00       	and    $0x407ce0,%eax
407f44:	c3                   	ret
407f45:	33 c0                	xor    %eax,%eax
407f47:	c3                   	ret
407f48:	cc                   	int3
407f49:	cc                   	int3
407f4a:	cc                   	int3
407f4b:	cc                   	int3
407f4c:	cc                   	int3
407f4d:	cc                   	int3
407f4e:	cc                   	int3
407f4f:	cc                   	int3
407f50:	51                   	push   %ecx
407f51:	53                   	push   %ebx
407f52:	55                   	push   %ebp
407f53:	8b 6c 24 14          	mov    0x14(%esp),%ebp
407f57:	56                   	push   %esi
407f58:	57                   	push   %edi
407f59:	8b 7d 14             	mov    0x14(%ebp),%edi
407f5c:	33 f6                	xor    %esi,%esi
407f5e:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
407f65:	00
407f66:	85 ff                	test   %edi,%edi
407f68:	75 0a                	jne    0x407f74
407f6a:	8b 5c 24 18          	mov    0x18(%esp),%ebx
407f6e:	89 5c 24 10          	mov    %ebx,0x10(%esp)
407f72:	eb 70                	jmp    0x407fe4
407f74:	55                   	push   %ebp
407f75:	e8 76 ff ff ff       	call   0x407ef0
407f7a:	83 c4 04             	add    $0x4,%esp
407f7d:	85 c0                	test   %eax,%eax
407f7f:	74 3b                	je     0x407fbc
407f81:	8b 7c 24 20          	mov    0x20(%esp),%edi
407f85:	8b 5c 24 18          	mov    0x18(%esp),%ebx
407f89:	57                   	push   %edi
407f8a:	55                   	push   %ebp
407f8b:	53                   	push   %ebx
407f8c:	ff d0                	call   *%eax
407f8e:	8b f0                	mov    %eax,%esi
407f90:	83 c4 0c             	add    $0xc,%esp
407f93:	85 f6                	test   %esi,%esi
407f95:	0f 85 50 01 00 00    	jne    0x4080eb
407f9b:	8b 45 00             	mov    0x0(%ebp),%eax
407f9e:	85 c0                	test   %eax,%eax
407fa0:	0f 84 45 01 00 00    	je     0x4080eb
407fa6:	57                   	push   %edi
407fa7:	50                   	push   %eax
407fa8:	53                   	push   %ebx
407fa9:	e8 a2 ff ff ff       	call   0x407f50
407fae:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
407fb2:	83 c4 0c             	add    $0xc,%esp
407fb5:	8b f0                	mov    %eax,%esi
407fb7:	e9 12 01 00 00       	jmp    0x4080ce
407fbc:	8b 44 24 18          	mov    0x18(%esp),%eax
407fc0:	68 0e 00 02 00       	push   $0x2000e
407fc5:	6a 00                	push   $0x0
407fc7:	57                   	push   %edi
407fc8:	50                   	push   %eax
407fc9:	8d 4c 24 20          	lea    0x20(%esp),%ecx
407fcd:	51                   	push   %ecx
407fce:	e8 1d df ff ff       	call   0x405ef0
407fd3:	8b f0                	mov    %eax,%esi