409a5b:	ff 75 fc             	push   -0x4(%ebp)
409a5e:	e8 30 8d ff ff       	call   0x402793
409a63:	5f                   	pop    %edi
409a64:	8b c6                	mov    %esi,%eax
409a66:	5e                   	pop    %esi
409a67:	8b e5                	mov    %ebp,%esp
409a69:	5d                   	pop    %ebp
409a6a:	c2 08 00             	ret    $0x8
409a6d:	55                   	push   %ebp
409a6e:	8b ec                	mov    %esp,%ebp
409a70:	51                   	push   %ecx
409a71:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409a75:	8d 45 fc             	lea    -0x4(%ebp),%eax
409a78:	56                   	push   %esi
409a79:	57                   	push   %edi
409a7a:	8b 7d 08             	mov    0x8(%ebp),%edi
409a7d:	6a 00                	push   $0x0
409a7f:	50                   	push   %eax
409a80:	ff 77 14             	push   0x14(%edi)
409a83:	ff 75 0c             	push   0xc(%ebp)
409a86:	e8 44 d7 ff ff       	call   0x4071cf
409a8b:	8b f0                	mov    %eax,%esi
409a8d:	85 f6                	test   %esi,%esi
409a8f:	79 12                	jns    0x409aa3
409a91:	68 94 e6 44 00       	push   $0x44e694
409a96:	56                   	push   %esi
409a97:	e8 93 66 03 00       	call   0x44012f
409a9c:	59                   	pop    %ecx
409a9d:	59                   	pop    %ecx
409a9e:	e9 8a 00 00 00       	jmp    0x409b2d
409aa3:	ff 75 fc             	push   -0x4(%ebp)
409aa6:	ff 15 6c b1 44 00    	call   *0x44b16c
409aac:	83 f8 ff             	cmp    $0xffffffff,%eax
409aaf:	75 16                	jne    0x409ac7
409ab1:	ff 15 e8 b0 44 00    	call   *0x44b0e8
409ab7:	0f b7 f0             	movzwl %ax,%esi
409aba:	81 ce 00 00 07 80    	or     $0x80070000,%esi
409ac0:	85 c0                	test   %eax,%eax
409ac2:	0f 4e f0             	cmovle %eax,%esi
409ac5:	eb 26                	jmp    0x409aed
409ac7:	a8 10                	test   $0x10,%al
409ac9:	74 1d                	je     0x409ae8
409acb:	6a 00                	push   $0x0
409acd:	ff 75 fc             	push   -0x4(%ebp)
409ad0:	ff 77 04             	push   0x4(%edi)
409ad3:	ff 75 0c             	push   0xc(%ebp)
409ad6:	e8 1b e6 ff ff       	call   0x4080f6
409adb:	8b f0                	mov    %eax,%esi
409add:	85 f6                	test   %esi,%esi
409adf:	79 0c                	jns    0x409aed
409ae1:	68 f4 e6 44 00       	push   $0x44e6f4
409ae6:	eb ae                	jmp    0x409a96
409ae8:	be 03 00 07 80       	mov    $0x80070003,%esi
409aed:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
409af3:	74 21                	je     0x409b16
409af5:	81 fe 03 00 07 80    	cmp    $0x80070003,%esi
409afb:	74 19                	je     0x409b16
409afd:	85 f6                	test   %esi,%esi
409aff:	79 2c                	jns    0x409b2d
409b01:	ff 75 fc             	push   -0x4(%ebp)
409b04:	ff 37                	push   (%edi)
409b06:	68 b8 e6 44 00       	push   $0x44e6b8
409b0b:	56                   	push   %esi
409b0c:	e8 1e 66 03 00       	call   0x44012f
409b11:	83 c4 10             	add    $0x10,%esp
409b14:	eb 17                	jmp    0x409b2d
409b16:	56                   	push   %esi
409b17:	ff 75 fc             	push   -0x4(%ebp)
409b1a:	ff 37                	push   (%edi)
409b1c:	68 24 e7 44 00       	push   $0x44e724
409b21:	6a 02                	push   $0x2
409b23:	e8 f2 6a 03 00       	call   0x44061a
409b28:	83 c4 14             	add    $0x14,%esp
409b2b:	33 f6                	xor    %esi,%esi
409b2d:	ff 75 fc             	push   -0x4(%ebp)
409b30:	e8 5e 8c ff ff       	call   0x402793
409b35:	5f                   	pop    %edi
409b36:	8b c6                	mov    %esi,%eax
409b38:	5e                   	pop    %esi
409b39:	8b e5                	mov    %ebp,%esp
409b3b:	5d                   	pop    %ebp
409b3c:	c2 08 00             	ret    $0x8
409b3f:	55                   	push   %ebp
409b40:	8b ec                	mov    %esp,%ebp
409b42:	83 ec 0c             	sub    $0xc,%esp
409b45:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409b49:	8d 45 fc             	lea    -0x4(%ebp),%eax
409b4c:	56                   	push   %esi
409b4d:	57                   	push   %edi
409b4e:	8b 7d 08             	mov    0x8(%ebp),%edi
409b51:	6a 00                	push   $0x0
409b53:	50                   	push   %eax
409b54:	ff 77 14             	push   0x14(%edi)
409b57:	ff 75 0c             	push   0xc(%ebp)
409b5a:	e8 70 d6 ff ff       	call   0x4071cf
409b5f:	8b f0                	mov    %eax,%esi
409b61:	85 f6                	test   %esi,%esi
409b63:	79 0a                	jns    0x409b6f
409b65:	68 94 e6 44 00       	push   $0x44e694
409b6a:	e9 9d 00 00 00       	jmp    0x409c0c
409b6f:	ff 75 fc             	push   -0x4(%ebp)
409b72:	ff 15 6c b1 44 00    	call   *0x44b16c
409b78:	83 f8 ff             	cmp    $0xffffffff,%eax
409b7b:	0f 85 a5 00 00 00    	jne    0x409c26
409b81:	ff 15 e8 b0 44 00    	call   *0x44b0e8
409b87:	83 f8 02             	cmp    $0x2,%eax
409b8a:	74 44                	je     0x409bd0
409b8c:	83 f8 03             	cmp    $0x3,%eax
409b8f:	74 3f                	je     0x409bd0
409b91:	85 c0                	test   %eax,%eax
409b93:	74 4f                	je     0x409be4
409b95:	0f b7 f0             	movzwl %ax,%esi
409b98:	81 ce 00 00 07 80    	or     $0x80070000,%esi
409b9e:	85 c0                	test   %eax,%eax
409ba0:	0f 4e f0             	cmovle %eax,%esi
409ba3:	b8 05 40 00 80       	mov    $0x80004005,%eax
409ba8:	85 f6                	test   %esi,%esi
409baa:	0f 49 f0             	cmovns %eax,%esi
409bad:	56                   	push   %esi
409bae:	68 8b 02 00 00       	push   $0x28b
409bb3:	68 c4 e1 44 00       	push   $0x44e1c4
409bb8:	e8 16 9c ff ff       	call   0x4037d3
409bbd:	ff 77 14             	push   0x14(%edi)
409bc0:	68 8c e7 44 00       	push   $0x44e78c
409bc5:	56                   	push   %esi
409bc6:	e8 64 65 03 00       	call   0x44012f
409bcb:	83 c4 0c             	add    $0xc,%esp
409bce:	eb 44                	jmp    0x409c14
409bd0:	ff 75 fc             	push   -0x4(%ebp)
409bd3:	ff 37                	push   (%edi)
409bd5:	68 60 e7 44 00       	push   $0x44e760
409bda:	6a 02                	push   $0x2
409bdc:	e8 39 6a 03 00       	call   0x44061a
409be1:	83 c4 10             	add    $0x10,%esp
409be4:	0f 57 c0             	xorps  %xmm0,%xmm0
409be7:	66 0f 13 45 f4       	movlpd %xmm0,-0xc(%ebp)
409bec:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409bef:	8b 45 f8             	mov    -0x8(%ebp),%eax
409bf2:	6a 00                	push   $0x0
409bf4:	50                   	push   %eax
409bf5:	51                   	push   %ecx
409bf6:	ff 77 04             	push   0x4(%edi)
409bf9:	ff 75 0c             	push   0xc(%ebp)
409bfc:	e8 51 e5 ff ff       	call   0x408152
409c01:	8b f0                	mov    %eax,%esi
409c03:	85 f6                	test   %esi,%esi
409c05:	79 0d                	jns    0x409c14
409c07:	68 18 d2 44 00       	push   $0x44d218
409c0c:	56                   	push   %esi
409c0d:	e8 1d 65 03 00       	call   0x44012f
409c12:	59                   	pop    %ecx
409c13:	59                   	pop    %ecx
409c14:	ff 75 fc             	push   -0x4(%ebp)
409c17:	e8 77 8b ff ff       	call   0x402793
409c1c:	5f                   	pop    %edi
409c1d:	8b c6                	mov    %esi,%eax
409c1f:	5e                   	pop    %esi
409c20:	8b e5                	mov    %ebp,%esp
409c22:	5d                   	pop    %ebp
409c23:	c2 08 00             	ret    $0x8
409c26:	0f 57 c0             	xorps  %xmm0,%xmm0
409c29:	66 0f 13 45 f4       	movlpd %xmm0,-0xc(%ebp)
409c2e:	a8 10                	test   $0x10,%al
409c30:	75 ba                	jne    0x409bec
409c32:	33 c9                	xor    %ecx,%ecx
409c34:	41                   	inc    %ecx
409c35:	33 c0                	xor    %eax,%eax
409c37:	eb b9                	jmp    0x409bf2
409c39:	55                   	push   %ebp
409c3a:	8b ec                	mov    %esp,%ebp
409c3c:	51                   	push   %ecx
409c3d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409c41:	8d 45 fc             	lea    -0x4(%ebp),%eax
409c44:	56                   	push   %esi
409c45:	57                   	push   %edi
409c46:	8b 7d 08             	mov    0x8(%ebp),%edi
409c49:	6a 00                	push   $0x0
409c4b:	50                   	push   %eax
409c4c:	ff 77 14             	push   0x14(%edi)
409c4f:	ff 75 0c             	push   0xc(%ebp)
409c52:	e8 78 d5 ff ff       	call   0x4071cf
409c57:	8b f0                	mov    %eax,%esi
409c59:	85 f6                	test   %esi,%esi
409c5b:	79 12                	jns    0x409c6f
409c5d:	68 94 e6 44 00       	push   $0x44e694
409c62:	56                   	push   %esi
409c63:	e8 c7 64 03 00       	call   0x44012f
409c68:	59                   	pop    %ecx
409c69:	59                   	pop    %ecx
409c6a:	e9 82 00 00 00       	jmp    0x409cf1
409c6f:	ff 75 fc             	push   -0x4(%ebp)
409c72:	ff 15 6c b1 44 00    	call   *0x44b16c
409c78:	83 f8 ff             	cmp    $0xffffffff,%eax
409c7b:	75 3d                	jne    0x409cba
409c7d:	ff 15 e8 b0 44 00    	call   *0x44b0e8
409c83:	0f b7 f0             	movzwl %ax,%esi
409c86:	81 ce 00 00 07 80    	or     $0x80070000,%esi
409c8c:	85 c0                	test   %eax,%eax
409c8e:	0f 4e f0             	cmovle %eax,%esi
409c91:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
409c97:	74 42                	je     0x409cdb
409c99:	81 fe 03 00 07 80    	cmp    $0x80070003,%esi
409c9f:	74 3a                	je     0x409cdb
409ca1:	85 f6                	test   %esi,%esi
409ca3:	79 4c                	jns    0x409cf1
409ca5:	ff 75 fc             	push   -0x4(%ebp)
409ca8:	ff 37                	push   (%edi)
409caa:	68 1c e8 44 00       	push   $0x44e81c
409caf:	56                   	push   %esi
409cb0:	e8 7a 64 03 00       	call   0x44012f
409cb5:	83 c4 10             	add    $0x10,%esp
409cb8:	eb 37                	jmp    0x409cf1
409cba:	a8 10                	test   $0x10,%al
409cbc:	75 1d                	jne    0x409cdb
409cbe:	6a 00                	push   $0x0
409cc0:	ff 75 fc             	push   -0x4(%ebp)
409cc3:	ff 77 04             	push   0x4(%edi)
409cc6:	ff 75 0c             	push   0xc(%ebp)
409cc9:	e8 28 e4 ff ff       	call   0x4080f6
409cce:	8b f0                	mov    %eax,%esi
409cd0:	85 f6                	test   %esi,%esi
409cd2:	79 bd                	jns    0x409c91
409cd4:	68 f0 e7 44 00       	push   $0x44e7f0
409cd9:	eb 87                	jmp    0x409c62
409cdb:	ff 75 fc             	push   -0x4(%ebp)
409cde:	ff 37                	push   (%edi)
409ce0:	68 60 e7 44 00       	push   $0x44e760
409ce5:	6a 02                	push   $0x2
409ce7:	e8 2e 69 03 00       	call   0x44061a
409cec:	83 c4 10             	add    $0x10,%esp
409cef:	33 f6                	xor    %esi,%esi
409cf1:	ff 75 fc             	push   -0x4(%ebp)
409cf4:	e8 9a 8a ff ff       	call   0x402793
409cf9:	5f                   	pop    %edi
409cfa:	8b c6                	mov    %esi,%eax
409cfc:	5e                   	pop    %esi
409cfd:	8b e5                	mov    %ebp,%esp
409cff:	5d                   	pop    %ebp
409d00:	c2 08 00             	ret    $0x8
409d03:	55                   	push   %ebp
409d04:	8b ec                	mov    %esp,%ebp
409d06:	83 ec 0c             	sub    $0xc,%esp
409d09:	53                   	push   %ebx
409d0a:	56                   	push   %esi
409d0b:	57                   	push   %edi
409d0c:	8b 7d 08             	mov    0x8(%ebp),%edi
409d0f:	8d 45 fc             	lea    -0x4(%ebp),%eax
409d12:	33 db                	xor    %ebx,%ebx
409d14:	53                   	push   %ebx
409d15:	50                   	push   %eax
409d16:	ff 77 14             	push   0x14(%edi)
409d19:	89 5d f4             	mov    %ebx,-0xc(%ebp)
409d1c:	ff 75 0c             	push   0xc(%ebp)
409d1f:	89 5d f8             	mov    %ebx,-0x8(%ebp)
409d22:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409d25:	e8 a5 d4 ff ff       	call   0x4071cf
409d2a:	8b f0                	mov    %eax,%esi
409d2c:	85 f6                	test   %esi,%esi
409d2e:	79 0f                	jns    0x409d3f
409d30:	68 b4 e7 44 00       	push   $0x44e7b4
409d35:	56                   	push   %esi
409d36:	e8 f4 63 03 00       	call   0x44012f
409d3b:	59                   	pop    %ecx
409d3c:	59                   	pop    %ecx
409d3d:	eb 62                	jmp    0x409da1
409d3f:	8d 45 f4             	lea    -0xc(%ebp),%eax
409d42:	50                   	push   %eax
409d43:	8d 45 f8             	lea    -0x8(%ebp),%eax
409d46:	50                   	push   %eax
409d47:	ff 75 fc             	push   -0x4(%ebp)
409d4a:	e8 e3 ab 03 00       	call   0x444932
409d4f:	8b f0                	mov    %eax,%esi
409d51:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
409d57:	74 32                	je     0x409d8b
409d59:	81 fe 03 00 07 80    	cmp    $0x80070003,%esi
409d5f:	74 2a                	je     0x409d8b
409d61:	85 f6                	test   %esi,%esi
409d63:	79 07                	jns    0x409d6c
409d65:	68 d4 e7 44 00       	push   $0x44e7d4
409d6a:	eb c9                	jmp    0x409d35
409d6c:	53                   	push   %ebx
409d6d:	ff 75 f8             	push   -0x8(%ebp)
409d70:	ff 75 f4             	push   -0xc(%ebp)
409d73:	ff 77 04             	push   0x4(%edi)
409d76:	ff 75 0c             	push   0xc(%ebp)
409d79:	e8 5a e4 ff ff       	call   0x4081d8
409d7e:	8b f0                	mov    %eax,%esi
409d80:	85 f6                	test   %esi,%esi
409d82:	79 1d                	jns    0x409da1
409d84:	68 18 d2 44 00       	push   $0x44d218
409d89:	eb aa                	jmp    0x409d35
409d8b:	ff 75 fc             	push   -0x4(%ebp)
409d8e:	ff 37                	push   (%edi)
409d90:	68 60 e7 44 00       	push   $0x44e760
409d95:	6a 02                	push   $0x2
409d97:	e8 7e 68 03 00       	call   0x44061a
409d9c:	83 c4 10             	add    $0x10,%esp
409d9f:	8b f3                	mov    %ebx,%esi
409da1:	ff 75 fc             	push   -0x4(%ebp)
409da4:	e8 ea 89 ff ff       	call   0x402793
409da9:	5f                   	pop    %edi
409daa:	8b c6                	mov    %esi,%eax
409dac:	5e                   	pop    %esi
409dad:	5b                   	pop    %ebx
409dae:	8b e5                	mov    %ebp,%esp
409db0:	5d                   	pop    %ebp
409db1:	c2 08 00             	ret    $0x8
409db4:	55                   	push   %ebp
409db5:	8b ec                	mov    %esp,%ebp
409db7:	83 ec 10             	sub    $0x10,%esp
409dba:	53                   	push   %ebx
409dbb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
409dbe:	33 c0                	xor    %eax,%eax
409dc0:	56                   	push   %esi
409dc1:	57                   	push   %edi
409dc2:	8b 7d 08             	mov    0x8(%ebp),%edi
409dc5:	50                   	push   %eax
409dc6:	89 45 f8             	mov    %eax,-0x8(%ebp)
409dc9:	89 45 f4             	mov    %eax,-0xc(%ebp)
409dcc:	89 45 f0             	mov    %eax,-0x10(%ebp)
409dcf:	89 45 fc             	mov    %eax,-0x4(%ebp)
409dd2:	8d 45 f4             	lea    -0xc(%ebp),%eax
409dd5:	50                   	push   %eax
409dd6:	ff 77 18             	push   0x18(%edi)
409dd9:	53                   	push   %ebx
409dda:	e8 f0 d3 ff ff       	call   0x4071cf
409ddf:	8b f0                	mov    %eax,%esi
409de1:	85 f6                	test   %esi,%esi
409de3:	79 0a                	jns    0x409def
409de5:	68 00 eb 44 00       	push   $0x44eb00
409dea:	e9 f9 00 00 00       	jmp    0x409ee8
409def:	83 7f 14 00          	cmpl   $0x0,0x14(%edi)
409df3:	74 1f                	je     0x409e14
409df5:	6a 00                	push   $0x0
409df7:	8d 45 f0             	lea    -0x10(%ebp),%eax
409dfa:	50                   	push   %eax
409dfb:	ff 77 14             	push   0x14(%edi)
409dfe:	53                   	push   %ebx
409dff:	e8 cb d3 ff ff       	call   0x4071cf
409e04:	8b f0                	mov    %eax,%esi
409e06:	85 f6                	test   %esi,%esi
409e08:	79 0a                	jns    0x409e14
409e0a:	68 28 eb 44 00       	push   $0x44eb28
409e0f:	e9 d4 00 00 00       	jmp    0x409ee8
409e14:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
409e18:	8d 45 fc             	lea    -0x4(%ebp),%eax
409e1b:	50                   	push   %eax
409e1c:	8d 45 f8             	lea    -0x8(%ebp),%eax
409e1f:	50                   	push   %eax
409e20:	ff 75 f4             	push   -0xc(%ebp)