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)
409e23:	74 0a                	je     0x409e2f
409e25:	ff 75 f0             	push   -0x10(%ebp)
409e28:	e8 ba 88 03 00       	call   0x4426e7
409e2d:	eb 05                	jmp    0x409e34
409e2f:	e8 f9 8d 03 00       	call   0x442c2d
409e34:	8b f0                	mov    %eax,%esi
409e36:	8b 45 f8             	mov    -0x8(%ebp),%eax
409e39:	6a 04                	push   $0x4
409e3b:	5a                   	pop    %edx
409e3c:	83 f8 fc             	cmp    $0xfffffffc,%eax
409e3f:	75 04                	jne    0x409e45
409e41:	8b c2                	mov    %edx,%eax
409e43:	eb 31                	jmp    0x409e76
409e45:	83 f8 ff             	cmp    $0xffffffff,%eax
409e48:	74 29                	je     0x409e73
409e4a:	83 f8 f9             	cmp    $0xfffffff9,%eax
409e4d:	74 24                	je     0x409e73
409e4f:	83 f8 02             	cmp    $0x2,%eax
409e52:	74 25                	je     0x409e79
409e54:	83 f8 03             	cmp    $0x3,%eax
409e57:	74 20                	je     0x409e79
409e59:	3b c2                	cmp    %edx,%eax
409e5b:	74 1c                	je     0x409e79
409e5d:	50                   	push   %eax
409e5e:	be 57 00 07 80       	mov    $0x80070057,%esi
409e63:	68 50 eb 44 00       	push   $0x44eb50
409e68:	56                   	push   %esi
409e69:	e8 c1 62 03 00       	call   0x44012f
409e6e:	83 c4 0c             	add    $0xc,%esp
409e71:	eb 7d                	jmp    0x409ef0
409e73:	6a 02                	push   $0x2
409e75:	58                   	pop    %eax
409e76:	89 45 f8             	mov    %eax,-0x8(%ebp)
409e79:	8b 4f 10             	mov    0x10(%edi),%ecx
409e7c:	83 e9 01             	sub    $0x1,%ecx
409e7f:	74 40                	je     0x409ec1
409e81:	83 e9 01             	sub    $0x1,%ecx
409e84:	74 2b                	je     0x409eb1
409e86:	83 e9 01             	sub    $0x1,%ecx
409e89:	75 54                	jne    0x409edf
409e8b:	83 f8 02             	cmp    $0x2,%eax
409e8e:	74 09                	je     0x409e99
409e90:	83 f8 03             	cmp    $0x3,%eax
409e93:	74 04                	je     0x409e99
409e95:	3b c2                	cmp    %edx,%eax
409e97:	75 46                	jne    0x409edf
409e99:	6a 5c                	push   $0x5c
409e9b:	ff 75 fc             	push   -0x4(%ebp)
409e9e:	e8 d5 59 02 00       	call   0x42f878
409ea3:	59                   	pop    %ecx
409ea4:	59                   	pop    %ecx
409ea5:	85 c0                	test   %eax,%eax
409ea7:	74 26                	je     0x409ecf
409ea9:	33 c9                	xor    %ecx,%ecx
409eab:	66 89 48 02          	mov    %cx,0x2(%eax)
409eaf:	eb 1e                	jmp    0x409ecf
409eb1:	6a 00                	push   $0x0
409eb3:	99                   	cltd
409eb4:	52                   	push   %edx
409eb5:	50                   	push   %eax
409eb6:	ff 77 04             	push   0x4(%edi)
409eb9:	53                   	push   %ebx
409eba:	e8 93 e2 ff ff       	call   0x408152
409ebf:	eb 1c                	jmp    0x409edd
409ec1:	83 f8 02             	cmp    $0x2,%eax
409ec4:	74 09                	je     0x409ecf
409ec6:	83 f8 03             	cmp    $0x3,%eax
409ec9:	74 04                	je     0x409ecf
409ecb:	3b c2                	cmp    %edx,%eax
409ecd:	75 10                	jne    0x409edf
409ecf:	6a 00                	push   $0x0
409ed1:	ff 75 fc             	push   -0x4(%ebp)
409ed4:	ff 77 04             	push   0x4(%edi)
409ed7:	53                   	push   %ebx
409ed8:	e8 19 e2 ff ff       	call   0x4080f6
409edd:	8b f0                	mov    %eax,%esi
409edf:	85 f6                	test   %esi,%esi
409ee1:	79 1f                	jns    0x409f02
409ee3:	68 18 d2 44 00       	push   $0x44d218
409ee8:	56                   	push   %esi
409ee9:	e8 41 62 03 00       	call   0x44012f
409eee:	59                   	pop    %ecx
409eef:	59                   	pop    %ecx
409ef0:	56                   	push   %esi
409ef1:	ff 37                	push   (%edi)
409ef3:	68 74 eb 44 00       	push   $0x44eb74
409ef8:	6a 02                	push   $0x2
409efa:	e8 1b 67 03 00       	call   0x44061a
409eff:	83 c4 10             	add    $0x10,%esp
409f02:	ff 75 f4             	push   -0xc(%ebp)
409f05:	e8 89 88 ff ff       	call   0x402793
409f0a:	ff 75 f0             	push   -0x10(%ebp)
409f0d:	e8 81 88 ff ff       	call   0x402793
409f12:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
409f16:	74 08                	je     0x409f20
409f18:	ff 75 fc             	push   -0x4(%ebp)
409f1b:	e8 cf b5 03 00       	call   0x4454ef
409f20:	5f                   	pop    %edi
409f21:	8b c6                	mov    %esi,%eax
409f23:	5e                   	pop    %esi
409f24:	5b                   	pop    %ebx
409f25:	8b e5                	mov    %ebp,%esp
409f27:	5d                   	pop    %ebp
409f28:	c2 08 00             	ret    $0x8
409f2b:	55                   	push   %ebp
409f2c:	8b ec                	mov    %esp,%ebp
409f2e:	83 ec 24             	sub    $0x24,%esp
409f31:	53                   	push   %ebx
409f32:	56                   	push   %esi
409f33:	57                   	push   %edi
409f34:	6a 06                	push   $0x6
409f36:	33 c0                	xor    %eax,%eax
409f38:	8d 7d dc             	lea    -0x24(%ebp),%edi
409f3b:	59                   	pop    %ecx
409f3c:	f3 ab                	rep stos %eax,%es:(%edi)
409f3e:	8b 4d 08             	mov    0x8(%ebp),%ecx
409f41:	33 db                	xor    %ebx,%ebx
409f43:	89 5d fc             	mov    %ebx,-0x4(%ebp)
409f46:	89 5d f8             	mov    %ebx,-0x8(%ebp)
409f49:	89 5d f4             	mov    %ebx,-0xc(%ebp)
409f4c:	8b 51 10             	mov    0x10(%ecx),%edx
409f4f:	8b c2                	mov    %edx,%eax
409f51:	83 e8 01             	sub    $0x1,%eax
409f54:	74 3d                	je     0x409f93
409f56:	83 e8 01             	sub    $0x1,%eax
409f59:	74 31                	je     0x409f8c
409f5b:	83 e8 01             	sub    $0x1,%eax
409f5e:	74 25                	je     0x409f85
409f60:	83 e8 01             	sub    $0x1,%eax
409f63:	74 19                	je     0x409f7e
409f65:	52                   	push   %edx
409f66:	be 01 40 00 80       	mov    $0x80004001,%esi
409f6b:	68 04 ec 44 00       	push   $0x44ec04
409f70:	56                   	push   %esi
409f71:	e8 b9 61 03 00       	call   0x44012f
409f76:	83 c4 0c             	add    $0xc,%esp
409f79:	e9 bd 01 00 00       	jmp    0x40a13b
409f7e:	bf e4 eb 44 00       	mov    $0x44ebe4,%edi
409f83:	eb 13                	jmp    0x409f98
409f85:	bf d8 eb 44 00       	mov    $0x44ebd8,%edi
409f8a:	eb 0c                	jmp    0x409f98
409f8c:	bf c4 eb 44 00       	mov    $0x44ebc4,%edi
409f91:	eb 05                	jmp    0x409f98
409f93:	bf a8 eb 44 00       	mov    $0x44eba8,%edi
409f98:	53                   	push   %ebx
409f99:	8d 45 fc             	lea    -0x4(%ebp),%eax
409f9c:	50                   	push   %eax
409f9d:	ff 71 18             	push   0x18(%ecx)
409fa0:	ff 75 0c             	push   0xc(%ebp)
409fa3:	e8 27 d2 ff ff       	call   0x4071cf
409fa8:	8b f0                	mov    %eax,%esi
409faa:	85 f6                	test   %esi,%esi
409fac:	79 0a                	jns    0x409fb8
409fae:	68 28 ec 44 00       	push   $0x44ec28
409fb3:	e9 7b 01 00 00       	jmp    0x40a133
409fb8:	8b 45 08             	mov    0x8(%ebp),%eax
409fbb:	6a 02                	push   $0x2
409fbd:	59                   	pop    %ecx
409fbe:	89 4d ec             	mov    %ecx,-0x14(%ebp)
409fc1:	39 48 14             	cmp    %ecx,0x14(%eax)
409fc4:	75 4c                	jne    0x40a012
409fc6:	6a 01                	push   $0x1
409fc8:	8d 45 f4             	lea    -0xc(%ebp),%eax
409fcb:	50                   	push   %eax
409fcc:	8d 45 f8             	lea    -0x8(%ebp),%eax
409fcf:	50                   	push   %eax
409fd0:	ff 75 fc             	push   -0x4(%ebp)
409fd3:	e8 86 85 03 00       	call   0x44255e
409fd8:	8b f0                	mov    %eax,%esi
409fda:	85 f6                	test   %esi,%esi
409fdc:	79 0a                	jns    0x409fe8
409fde:	68 48 ec 44 00       	push   $0x44ec48
409fe3:	e9 4b 01 00 00       	jmp    0x40a133
409fe8:	83 7d f4 01          	cmpl   $0x1,-0xc(%ebp)
409fec:	75 1f                	jne    0x40a00d