406c3a:	75 88                	jne    0x406bc4
406c3c:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
406c41:	57                   	push   %edi
406c42:	68 ce 05 00 00       	push   $0x5ce
406c47:	68 bc cc 44 00       	push   $0x44ccbc
406c4c:	8b f7                	mov    %edi,%esi
406c4e:	e8 80 cb ff ff       	call   0x4037d3
406c53:	68 b0 d5 44 00       	push   $0x44d5b0
406c58:	e9 24 ff ff ff       	jmp    0x406b81
406c5d:	55                   	push   %ebp
406c5e:	8b ec                	mov    %esp,%ebp
406c60:	83 ec 0c             	sub    $0xc,%esp
406c63:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406c67:	53                   	push   %ebx
406c68:	8b 5d 08             	mov    0x8(%ebp),%ebx
406c6b:	56                   	push   %esi
406c6c:	57                   	push   %edi
406c6d:	53                   	push   %ebx
406c6e:	ff 15 b4 b1 44 00    	call   *0x44b1b4
406c74:	8b 7d 0c             	mov    0xc(%ebp),%edi
406c77:	8d 45 fc             	lea    -0x4(%ebp),%eax
406c7a:	50                   	push   %eax
406c7b:	57                   	push   %edi
406c7c:	53                   	push   %ebx
406c7d:	e8 34 e9 ff ff       	call   0x4055b6
406c82:	8b f0                	mov    %eax,%esi
406c84:	85 f6                	test   %esi,%esi
406c86:	79 14                	jns    0x406c9c
406c88:	57                   	push   %edi
406c89:	68 70 cc 44 00       	push   $0x44cc70
406c8e:	56                   	push   %esi
406c8f:	e8 9b 94 03 00       	call   0x44012f
406c94:	83 c4 0c             	add    $0xc,%esp
406c97:	e9 65 01 00 00       	jmp    0x406e01
406c9c:	8b 45 fc             	mov    -0x4(%ebp),%eax
406c9f:	83 fe 01             	cmp    $0x1,%esi
406ca2:	75 16                	jne    0x406cba
406ca4:	50                   	push   %eax
406ca5:	57                   	push   %edi
406ca6:	53                   	push   %ebx
406ca7:	e8 1a fe ff ff       	call   0x406ac6
406cac:	8b f0                	mov    %eax,%esi
406cae:	85 f6                	test   %esi,%esi
406cb0:	79 51                	jns    0x406d03
406cb2:	57                   	push   %edi
406cb3:	68 98 cc 44 00       	push   $0x44cc98
406cb8:	eb d4                	jmp    0x406c8e
406cba:	8b 53 20             	mov    0x20(%ebx),%edx
406cbd:	6b c8 38             	imul   $0x38,%eax,%ecx
406cc0:	8b 74 11 2c          	mov    0x2c(%ecx,%edx,1),%esi
406cc4:	85 f6                	test   %esi,%esi
406cc6:	7e 3e                	jle    0x406d06
406cc8:	83 7d 18 01          	cmpl   $0x1,0x18(%ebp)
406ccc:	74 38                	je     0x406d06
406cce:	83 7d 18 02          	cmpl   $0x2,0x18(%ebp)
406cd2:	75 07                	jne    0x406cdb
406cd4:	83 7c 11 28 00       	cmpl   $0x0,0x28(%ecx,%edx,1)
406cd9:	75 2b                	jne    0x406d06
406cdb:	83 7d 18 03          	cmpl   $0x3,0x18(%ebp)
406cdf:	75 05                	jne    0x406ce6
406ce1:	83 fe 02             	cmp    $0x2,%esi
406ce4:	75 20                	jne    0x406d06
406ce6:	be 57 00 07 80       	mov    $0x80070057,%esi
406ceb:	56                   	push   %esi
406cec:	68 05 06 00 00       	push   $0x605
406cf1:	68 bc cc 44 00       	push   $0x44ccbc
406cf6:	e8 d8 ca ff ff       	call   0x4037d3
406cfb:	57                   	push   %edi
406cfc:	68 cc cc 44 00       	push   $0x44cccc
406d01:	eb 8b                	jmp    0x406c8e
406d03:	8b 45 fc             	mov    -0x4(%ebp),%eax
406d06:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
406d0a:	8b 75 10             	mov    0x10(%ebp),%esi
406d0d:	0f 84 ba 00 00 00    	je     0x406dcd
406d13:	8b 53 20             	mov    0x20(%ebx),%edx
406d16:	6b c8 38             	imul   $0x38,%eax,%ecx
406d19:	83 7c 11 2c 00       	cmpl   $0x0,0x2c(%ecx,%edx,1)
406d1e:	0f 85 a9 00 00 00    	jne    0x406dcd
406d24:	83 7c 11 20 00       	cmpl   $0x0,0x20(%ecx,%edx,1)
406d29:	74 15                	je     0x406d40
406d2b:	57                   	push   %edi
406d2c:	68 f8 d5 44 00       	push   $0x44d5f8
406d31:	6a 02                	push   $0x2
406d33:	e8 e2 98 03 00       	call   0x44061a
406d38:	83 c4 0c             	add    $0xc,%esp
406d3b:	e9 8d 00 00 00       	jmp    0x406dcd
406d40:	8b 46 10             	mov    0x10(%esi),%eax
406d43:	83 e8 00             	sub    $0x0,%eax
406d46:	74 6c                	je     0x406db4
406d48:	83 e8 01             	sub    $0x1,%eax
406d4b:	74 50                	je     0x406d9d
406d4d:	83 e8 01             	sub    $0x1,%eax
406d50:	74 38                	je     0x406d8a
406d52:	83 e8 01             	sub    $0x1,%eax
406d55:	75 76                	jne    0x406dcd
406d57:	8b 0e                	mov    (%esi),%ecx
406d59:	8b 56 04             	mov    0x4(%esi),%edx
406d5c:	0f b7 c1             	movzwl %cx,%eax
406d5f:	50                   	push   %eax
406d60:	8b c2                	mov    %edx,%eax
406d62:	89 55 f8             	mov    %edx,-0x8(%ebp)
406d65:	0f ac c1 10          	shrd   $0x10,%eax,%ecx
406d69:	c1 e8 10             	shr    $0x10,%eax
406d6c:	0f b7 c1             	movzwl %cx,%eax
406d6f:	50                   	push   %eax
406d70:	0f b7 c2             	movzwl %dx,%eax
406d73:	50                   	push   %eax
406d74:	c1 ea 10             	shr    $0x10,%edx
406d77:	52                   	push   %edx
406d78:	57                   	push   %edi
406d79:	68 94 d6 44 00       	push   $0x44d694
406d7e:	6a 02                	push   $0x2
406d80:	e8 95 98 03 00       	call   0x44061a
406d85:	83 c4 1c             	add    $0x1c,%esp
406d88:	eb 43                	jmp    0x406dcd
406d8a:	83 3e 00             	cmpl   $0x0,(%esi)
406d8d:	75 04                	jne    0x406d93
406d8f:	6a 00                	push   $0x0
406d91:	eb 2a                	jmp    0x406dbd
406d93:	ff 36                	push   (%esi)
406d95:	57                   	push   %edi
406d96:	68 64 d6 44 00       	push   $0x44d664
406d9b:	eb 26                	jmp    0x406dc3
406d9d:	ff 76 04             	push   0x4(%esi)
406da0:	ff 36                	push   (%esi)
406da2:	57                   	push   %edi
406da3:	68 34 d6 44 00       	push   $0x44d634
406da8:	6a 02                	push   $0x2
406daa:	e8 6b 98 03 00       	call   0x44061a
406daf:	83 c4 14             	add    $0x14,%esp
406db2:	eb 19                	jmp    0x406dcd
406db4:	83 7c 11 18 00       	cmpl   $0x0,0x18(%ecx,%edx,1)
406db9:	74 12                	je     0x406dcd
406dbb:	ff 36                	push   (%esi)
406dbd:	57                   	push   %edi
406dbe:	68 18 d6 44 00       	push   $0x44d618
406dc3:	6a 02                	push   $0x2
406dc5:	e8 50 98 03 00       	call   0x44061a
406dca:	83 c4 10             	add    $0x10,%esp
406dcd:	6b 4d fc 38          	imul   $0x38,-0x4(%ebp),%ecx
406dd1:	8b 43 20             	mov    0x20(%ebx),%eax
406dd4:	56                   	push   %esi
406dd5:	89 4d 18             	mov    %ecx,0x18(%ebp)
406dd8:	83 c1 08             	add    $0x8,%ecx
406ddb:	03 c1                	add    %ecx,%eax
406ddd:	50                   	push   %eax
406dde:	e8 78 95 01 00       	call   0x42035b
406de3:	8b f0                	mov    %eax,%esi
406de5:	85 f6                	test   %esi,%esi
406de7:	79 0b                	jns    0x406df4
406de9:	57                   	push   %edi
406dea:	68 f8 cc 44 00       	push   $0x44ccf8
406def:	e9 9a fe ff ff       	jmp    0x406c8e
406df4:	8b 4b 20             	mov    0x20(%ebx),%ecx
406df7:	8b 55 18             	mov    0x18(%ebp),%edx
406dfa:	8b 45 14             	mov    0x14(%ebp),%eax
406dfd:	89 44 11 24          	mov    %eax,0x24(%ecx,%edx,1)
406e01:	53                   	push   %ebx
406e02:	ff 15 b8 b1 44 00    	call   *0x44b1b8
406e08:	85 f6                	test   %esi,%esi
406e0a:	79 17                	jns    0x406e23
406e0c:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
406e10:	74 11                	je     0x406e23
406e12:	56                   	push   %esi
406e13:	57                   	push   %edi
406e14:	68 d0 d6 44 00       	push   $0x44d6d0
406e19:	6a 02                	push   $0x2
406e1b:	e8 fa 97 03 00       	call   0x44061a
406e20:	83 c4 10             	add    $0x10,%esp
406e23:	5f                   	pop    %edi
406e24:	8b c6                	mov    %esi,%eax
406e26:	5e                   	pop    %esi
406e27:	5b                   	pop    %ebx
406e28:	8b e5                	mov    %ebp,%esp
406e2a:	5d                   	pop    %ebp
406e2b:	c2 18 00             	ret    $0x18
406e2e:	55                   	push   %ebp
406e2f:	8b ec                	mov    %esp,%ebp
406e31:	33 c9                	xor    %ecx,%ecx
406e33:	39 4d 0c             	cmp    %ecx,0xc(%ebp)
406e36:	77 11                	ja     0x406e49
406e38:	8b 55 08             	mov    0x8(%ebp),%edx
406e3b:	72 05                	jb     0x406e42
406e3d:	83 fa ff             	cmp    $0xffffffff,%edx
406e40:	77 07                	ja     0x406e49
406e42:	8b 45 10             	mov    0x10(%ebp),%eax
406e45:	89 10                	mov    %edx,(%eax)
406e47:	eb 0b                	jmp    0x406e54
406e49:	8b 45 10             	mov    0x10(%ebp),%eax
406e4c:	b9 16 02 07 80       	mov    $0x80070216,%ecx
406e51:	83 08 ff             	orl    $0xffffffff,(%eax)
406e54:	8b c1                	mov    %ecx,%eax
406e56:	5d                   	pop    %ebp
406e57:	c2 0c 00             	ret    $0xc
406e5a:	55                   	push   %ebp
406e5b:	8b ec                	mov    %esp,%ebp
406e5d:	83 ec 34             	sub    $0x34,%esp
406e60:	53                   	push   %ebx
406e61:	56                   	push   %esi
406e62:	57                   	push   %edi
406e63:	6a 06                	push   $0x6
406e65:	33 d2                	xor    %edx,%edx
406e67:	8d 7d cc             	lea    -0x34(%ebp),%edi
406e6a:	59                   	pop    %ecx
406e6b:	ff 75 08             	push   0x8(%ebp)
406e6e:	33 c0                	xor    %eax,%eax
406e70:	89 55 f4             	mov    %edx,-0xc(%ebp)
406e73:	0f 57 c0             	xorps  %xmm0,%xmm0
406e76:	89 55 f8             	mov    %edx,-0x8(%ebp)
406e79:	f3 ab                	rep stos %eax,%es:(%edi)
406e7b:	89 55 f0             	mov    %edx,-0x10(%ebp)
406e7e:	89 55 ec             	mov    %edx,-0x14(%ebp)
406e81:	89 55 fc             	mov    %edx,-0x4(%ebp)
406e84:	66 0f 13 45 e4       	movlpd %xmm0,-0x1c(%ebp)
406e89:	ff 15 b4 b1 44 00    	call   *0x44b1b4
406e8f:	8b 7d 18             	mov    0x18(%ebp),%edi
406e92:	8d 45 f4             	lea    -0xc(%ebp),%eax
406e95:	8b 5d 14             	mov    0x14(%ebp),%ebx
406e98:	50                   	push   %eax
406e99:	57                   	push   %edi
406e9a:	53                   	push   %ebx
406e9b:	ff 75 10             	push   0x10(%ebp)
406e9e:	e8 91 86 03 00       	call   0x43f534
406ea3:	8b f0                	mov    %eax,%esi
406ea5:	85 f6                	test   %esi,%esi
406ea7:	79 0a                	jns    0x406eb3
406ea9:	68 ec d0 44 00       	push   $0x44d0ec
406eae:	e9 d7 01 00 00       	jmp    0x40708a
406eb3:	83 65 18 00          	andl   $0x0,0x18(%ebp)
406eb7:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
406ebb:	0f 86 d1 01 00 00    	jbe    0x407092
406ec1:	8d 45 f0             	lea    -0x10(%ebp),%eax
406ec4:	50                   	push   %eax
406ec5:	57                   	push   %edi
406ec6:	53                   	push   %ebx
406ec7:	ff 75 10             	push   0x10(%ebp)
406eca:	e8 65 86 03 00       	call   0x43f534
406ecf:	8b f0                	mov    %eax,%esi
406ed1:	85 f6                	test   %esi,%esi
406ed3:	0f 88 ac 01 00 00    	js     0x407085
406ed9:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
406edd:	0f 84 53 01 00 00    	je     0x407036
406ee3:	8d 45 f8             	lea    -0x8(%ebp),%eax
406ee6:	50                   	push   %eax
406ee7:	57                   	push   %edi
406ee8:	53                   	push   %ebx
406ee9:	ff 75 10             	push   0x10(%ebp)
406eec:	e8 9e 86 03 00       	call   0x43f58f
406ef1:	8b f0                	mov    %eax,%esi
406ef3:	85 f6                	test   %esi,%esi
406ef5:	0f 88 83 01 00 00    	js     0x40707e
406efb:	8d 45 dc             	lea    -0x24(%ebp),%eax
406efe:	50                   	push   %eax
406eff:	57                   	push   %edi
406f00:	53                   	push   %ebx
406f01:	ff 75 10             	push   0x10(%ebp)
406f04:	e8 2b 86 03 00       	call   0x43f534
406f09:	8b f0                	mov    %eax,%esi
406f0b:	85 f6                	test   %esi,%esi
406f0d:	0f 88 64 01 00 00    	js     0x407077
406f13:	8b 45 dc             	mov    -0x24(%ebp),%eax
406f16:	83 e8 00             	sub    $0x0,%eax
406f19:	0f 84 d5 00 00 00    	je     0x406ff4
406f1f:	83 e8 01             	sub    $0x1,%eax
406f22:	0f 84 94 00 00 00    	je     0x406fbc
406f28:	83 e8 01             	sub    $0x1,%eax
406f2b:	74 4b                	je     0x406f78
406f2d:	83 e8 01             	sub    $0x1,%eax
406f30:	0f 85 20 01 00 00    	jne    0x407056
406f36:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406f39:	50                   	push   %eax
406f3a:	57                   	push   %edi
406f3b:	53                   	push   %ebx
406f3c:	ff 75 10             	push   0x10(%ebp)
406f3f:	e8 8e 85 03 00       	call   0x43f4d2
406f44:	8b f0                	mov    %eax,%esi
406f46:	85 f6                	test   %esi,%esi
406f48:	0f 88 01 01 00 00    	js     0x40704f
406f4e:	ff 75 e8             	push   -0x18(%ebp)
406f51:	8d 45 cc             	lea    -0x34(%ebp),%eax
406f54:	ff 75 e4             	push   -0x1c(%ebp)
406f57:	50                   	push   %eax
406f58:	e8 f8 94 01 00       	call   0x420455
406f5d:	8b f0                	mov    %eax,%esi
406f5f:	85 f6                	test   %esi,%esi
406f61:	0f 88 e1 00 00 00    	js     0x407048
406f67:	6a 08                	push   $0x8
406f69:	59                   	pop    %ecx
406f6a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406f6d:	c6 00 00             	movb   $0x0,(%eax)
406f70:	40                   	inc    %eax
406f71:	83 e9 01             	sub    $0x1,%ecx
406f74:	75 f7                	jne    0x406f6d
406f76:	eb 7c                	jmp    0x406ff4
406f78:	8d 45 fc             	lea    -0x4(%ebp),%eax
406f7b:	50                   	push   %eax
406f7c:	57                   	push   %edi
406f7d:	53                   	push   %ebx
406f7e:	ff 75 10             	push   0x10(%ebp)
406f81:	e8 09 86 03 00       	call   0x43f58f
406f86:	8b f0                	mov    %eax,%esi
406f88:	85 f6                	test   %esi,%esi
406f8a:	0f 88 d2 00 00 00    	js     0x407062
406f90:	6a 00                	push   $0x0
406f92:	ff 75 fc             	push   -0x4(%ebp)
406f95:	8d 45 cc             	lea    -0x34(%ebp),%eax
406f98:	50                   	push   %eax
406f99:	e8 56 93 01 00       	call   0x4202f4
406f9e:	8b f0                	mov    %eax,%esi
406fa0:	85 f6                	test   %esi,%esi
406fa2:	0f 88 a0 00 00 00    	js     0x407048
406fa8:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
406fac:	74 46                	je     0x406ff4
406fae:	ff 75 fc             	push   -0x4(%ebp)
406fb1:	e8 dd b7 ff ff       	call   0x402793
406fb6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406fba:	eb 38                	jmp    0x406ff4
406fbc:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406fbf:	50                   	push   %eax
406fc0:	57                   	push   %edi
406fc1:	53                   	push   %ebx
406fc2:	ff 75 10             	push   0x10(%ebp)
406fc5:	e8 08 85 03 00       	call   0x43f4d2
406fca:	8b f0                	mov    %eax,%esi
406fcc:	85 f6                	test   %esi,%esi
406fce:	78 7f                	js     0x40704f
406fd0:	ff 75 e8             	push   -0x18(%ebp)
406fd3:	8d 45 cc             	lea    -0x34(%ebp),%eax
406fd6:	ff 75 e4             	push   -0x1c(%ebp)
406fd9:	50                   	push   %eax
406fda:	e8 d1 92 01 00       	call   0x4202b0
406fdf:	8b f0                	mov    %eax,%esi
406fe1:	85 f6                	test   %esi,%esi
406fe3:	78 63                	js     0x407048
406fe5:	6a 08                	push   $0x8
406fe7:	59                   	pop    %ecx
406fe8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
406feb:	c6 00 00             	movb   $0x0,(%eax)
406fee:	40                   	inc    %eax
406fef:	83 e9 01             	sub    $0x1,%ecx
406ff2:	75 f7                	jne    0x406feb
406ff4:	8d 45 ec             	lea    -0x14(%ebp),%eax
406ff7:	50                   	push   %eax
406ff8:	57                   	push   %edi
406ff9:	53                   	push   %ebx
406ffa:	ff 75 10             	push   0x10(%ebp)
406ffd:	e8 32 85 03 00       	call   0x43f534
407002:	8b f0                	mov    %eax,%esi
407004:	85 f6                	test   %esi,%esi
407006:	78 68                	js     0x407070