409c50:	8b cf                	mov    %edi,%ecx
409c52:	c7 06 b0 bc 48 00    	movl   $0x48bcb0,(%esi)
409c58:	e8 57 74 ff ff       	call   0x4010b4
409c5d:	8b 45 08             	mov    0x8(%ebp),%eax
409c60:	ff 75 10             	push   0x10(%ebp)
409c63:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409c67:	89 46 08             	mov    %eax,0x8(%esi)
409c6a:	8b 45 0c             	mov    0xc(%ebp),%eax
409c6d:	8b cf                	mov    %edi,%ecx
409c6f:	89 46 0c             	mov    %eax,0xc(%esi)
409c72:	e8 0a 75 ff ff       	call   0x401181
409c77:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409c7a:	5f                   	pop    %edi
409c7b:	8b c6                	mov    %esi,%eax
409c7d:	5e                   	pop    %esi
409c7e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
409c85:	c9                   	leave
409c86:	c2 0c 00             	ret    $0xc
409c89:	ff 74 24 04          	push   0x4(%esp)
409c8d:	ff 71 04             	push   0x4(%ecx)
409c90:	ff 15 cc 02 4b 00    	call   *0x4b02cc
409c96:	85 c0                	test   %eax,%eax
409c98:	74 0b                	je     0x409ca5
409c9a:	3d 80 00 00 00       	cmp    $0x80,%eax
409c9f:	74 04                	je     0x409ca5
409ca1:	33 c0                	xor    %eax,%eax
409ca3:	eb 03                	jmp    0x409ca8
409ca5:	33 c0                	xor    %eax,%eax
409ca7:	40                   	inc    %eax
409ca8:	c2 04 00             	ret    $0x4
409cab:	8b c1                	mov    %ecx,%eax
409cad:	83 60 04 00          	andl   $0x0,0x4(%eax)
409cb1:	c7 00 5c bd 48 00    	movl   $0x48bd5c,(%eax)
409cb7:	c2 04 00             	ret    $0x4
409cba:	56                   	push   %esi
409cbb:	8b f1                	mov    %ecx,%esi
409cbd:	8b 46 04             	mov    0x4(%esi),%eax
409cc0:	85 c0                	test   %eax,%eax
409cc2:	c7 06 5c bd 48 00    	movl   $0x48bd5c,(%esi)
409cc8:	74 0b                	je     0x409cd5
409cca:	50                   	push   %eax
409ccb:	ff 15 d8 02 4b 00    	call   *0x4b02d8
409cd1:	83 66 04 00          	andl   $0x0,0x4(%esi)
409cd5:	5e                   	pop    %esi
409cd6:	c3                   	ret
409cd7:	56                   	push   %esi
409cd8:	8b f1                	mov    %ecx,%esi
409cda:	e8 db ff ff ff       	call   0x409cba
409cdf:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
409ce4:	74 07                	je     0x409ced
409ce6:	56                   	push   %esi
409ce7:	e8 94 63 03 00       	call   0x440080
409cec:	59                   	pop    %ecx
409ced:	8b c6                	mov    %esi,%eax
409cef:	5e                   	pop    %esi
409cf0:	c2 04 00             	ret    $0x4
409cf3:	e9 6d ff 00 00       	jmp    0x419c65
409cf8:	ff 25 a8 0a 4b 00    	jmp    *0x4b0aa8
409cfe:	8b c1                	mov    %ecx,%eax
409d00:	83 20 00             	andl   $0x0,(%eax)
409d03:	83 60 04 00          	andl   $0x0,0x4(%eax)
409d07:	c3                   	ret
409d08:	8b c1                	mov    %ecx,%eax
409d0a:	8b 4c 24 04          	mov    0x4(%esp),%ecx
409d0e:	89 08                	mov    %ecx,(%eax)
409d10:	8b 4c 24 08          	mov    0x8(%esp),%ecx
409d14:	89 48 04             	mov    %ecx,0x4(%eax)
409d17:	c2 08 00             	ret    $0x8
409d1a:	8b 01                	mov    (%ecx),%eax
409d1c:	8b 51 04             	mov    0x4(%ecx),%edx
409d1f:	c3                   	ret
409d20:	51                   	push   %ecx
409d21:	e8 b7 ce 00 00       	call   0x416bdd
409d26:	85 c0                	test   %eax,%eax
409d28:	59                   	pop    %ecx
409d29:	74 09                	je     0x409d34
409d2b:	8b 40 14             	mov    0x14(%eax),%eax
409d2e:	05 6c 07 00 00       	add    $0x76c,%eax
409d33:	c3                   	ret
409d34:	33 c0                	xor    %eax,%eax
409d36:	c3                   	ret
409d37:	51                   	push   %ecx
409d38:	e8 a0 ce 00 00       	call   0x416bdd
409d3d:	85 c0                	test   %eax,%eax
409d3f:	59                   	pop    %ecx
409d40:	74 05                	je     0x409d47
409d42:	8b 40 10             	mov    0x10(%eax),%eax
409d45:	40                   	inc    %eax
409d46:	c3                   	ret
409d47:	33 c0                	xor    %eax,%eax
409d49:	c3                   	ret
409d4a:	51                   	push   %ecx
409d4b:	e8 8d ce 00 00       	call   0x416bdd
409d50:	85 c0                	test   %eax,%eax
409d52:	59                   	pop    %ecx
409d53:	74 04                	je     0x409d59
409d55:	8b 40 0c             	mov    0xc(%eax),%eax
409d58:	c3                   	ret
409d59:	33 c0                	xor    %eax,%eax
409d5b:	c3                   	ret
409d5c:	51                   	push   %ecx
409d5d:	e8 7b ce 00 00       	call   0x416bdd
409d62:	85 c0                	test   %eax,%eax
409d64:	59                   	pop    %ecx
409d65:	74 04                	je     0x409d6b
409d67:	8b 40 08             	mov    0x8(%eax),%eax
409d6a:	c3                   	ret
409d6b:	83 c8 ff             	or     $0xffffffff,%eax
409d6e:	c3                   	ret
409d6f:	51                   	push   %ecx
409d70:	e8 68 ce 00 00       	call   0x416bdd
409d75:	85 c0                	test   %eax,%eax
409d77:	59                   	pop    %ecx
409d78:	74 04                	je     0x409d7e
409d7a:	8b 40 04             	mov    0x4(%eax),%eax
409d7d:	c3                   	ret
409d7e:	83 c8 ff             	or     $0xffffffff,%eax
409d81:	c3                   	ret
409d82:	51                   	push   %ecx
409d83:	e8 55 ce 00 00       	call   0x416bdd
409d88:	85 c0                	test   %eax,%eax
409d8a:	59                   	pop    %ecx
409d8b:	74 03                	je     0x409d90
409d8d:	8b 00                	mov    (%eax),%eax
409d8f:	c3                   	ret
409d90:	83 c8 ff             	or     $0xffffffff,%eax
409d93:	c3                   	ret
409d94:	8b 44 24 04          	mov    0x4(%esp),%eax
409d98:	85 c0                	test   %eax,%eax
409d9a:	7d 12                	jge    0x409dae
409d9c:	3d 0e 00 07 80       	cmp    $0x8007000e,%eax
409da1:	75 05                	jne    0x409da8
409da3:	e8 6f b6 02 00       	call   0x435417
409da8:	50                   	push   %eax
409da9:	e8 93 95 06 00       	call   0x473341
409dae:	c2 04 00             	ret    $0x4
409db1:	b8 b3 30 48 00       	mov    $0x4830b3,%eax
409db6:	e8 c1 de 00 00       	call   0x417c7c
409dbb:	83 ec 34             	sub    $0x34,%esp
409dbe:	8b 45 08             	mov    0x8(%ebp),%eax
409dc1:	85 c0                	test   %eax,%eax
409dc3:	53                   	push   %ebx
409dc4:	56                   	push   %esi
409dc5:	57                   	push   %edi
409dc6:	89 65 f0             	mov    %esp,-0x10(%ebp)
409dc9:	0f 84 33 02 00 00    	je     0x40a002
409dcf:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
409dd3:	0f 84 29 02 00 00    	je     0x40a002
409dd9:	8b 35 d4 04 4b 00    	mov    0x4b04d4,%esi
409ddf:	50                   	push   %eax
409de0:	ff d6                	call   *%esi
409de2:	ff 75 0c             	push   0xc(%ebp)
409de5:	8b d8                	mov    %eax,%ebx
409de7:	89 5d d0             	mov    %ebx,-0x30(%ebp)
409dea:	ff d6                	call   *%esi
409dec:	8b f8                	mov    %eax,%edi
409dee:	3b df                	cmp    %edi,%ebx
409df0:	0f 85 1f 01 00 00    	jne    0x409f15
409df6:	85 db                	test   %ebx,%ebx
409df8:	75 08                	jne    0x409e02
409dfa:	33 c0                	xor    %eax,%eax
409dfc:	40                   	inc    %eax
409dfd:	e9 0a 02 00 00       	jmp    0x40a00c
409e02:	ff 75 08             	push   0x8(%ebp)
409e05:	8b 35 d8 04 4b 00    	mov    0x4b04d8,%esi
409e0b:	ff d6                	call   *%esi
409e0d:	ff 75 0c             	push   0xc(%ebp)
409e10:	89 45 d4             	mov    %eax,-0x2c(%ebp)
409e13:	ff d6                	call   *%esi
409e15:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
409e18:	0f 85 f7 00 00 00    	jne    0x409f15
409e1e:	33 c0                	xor    %eax,%eax
409e20:	c1 e3 02             	shl    $0x2,%ebx
409e23:	53                   	push   %ebx
409e24:	89 45 ec             	mov    %eax,-0x14(%ebp)
409e27:	89 45 e8             	mov    %eax,-0x18(%ebp)
409e2a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
409e2d:	89 45 e0             	mov    %eax,-0x20(%ebp)
409e30:	89 45 dc             	mov    %eax,-0x24(%ebp)
409e33:	89 45 d8             	mov    %eax,-0x28(%ebp)
409e36:	89 45 fc             	mov    %eax,-0x4(%ebp)
409e39:	e8 17 62 03 00       	call   0x440055
409e3e:	8b f7                	mov    %edi,%esi
409e40:	59                   	pop    %ecx
409e41:	c1 e6 02             	shl    $0x2,%esi
409e44:	56                   	push   %esi
409e45:	89 45 ec             	mov    %eax,-0x14(%ebp)
409e48:	e8 08 62 03 00       	call   0x440055
409e4d:	59                   	pop    %ecx
409e4e:	53                   	push   %ebx
409e4f:	89 45 e8             	mov    %eax,-0x18(%ebp)
409e52:	e8 fe 61 03 00       	call   0x440055
409e57:	59                   	pop    %ecx
409e58:	56                   	push   %esi
409e59:	89 45 e4             	mov    %eax,-0x1c(%ebp)
409e5c:	e8 f4 61 03 00       	call   0x440055
409e61:	33 db                	xor    %ebx,%ebx
409e63:	89 45 e0             	mov    %eax,-0x20(%ebp)
409e66:	43                   	inc    %ebx
409e67:	59                   	pop    %ecx
409e68:	33 c0                	xor    %eax,%eax
409e6a:	3b 45 d0             	cmp    -0x30(%ebp),%eax
409e6d:	0f 83 b4 00 00 00    	jae    0x409f27
409e73:	8b 4d ec             	mov    -0x14(%ebp),%ecx
409e76:	8b f0                	mov    %eax,%esi
409e78:	c1 e6 02             	shl    $0x2,%esi
409e7b:	03 ce                	add    %esi,%ecx
409e7d:	51                   	push   %ecx
409e7e:	8d 78 01             	lea    0x1(%eax),%edi
409e81:	57                   	push   %edi
409e82:	ff 75 08             	push   0x8(%ebp)
409e85:	89 4d c8             	mov    %ecx,-0x38(%ebp)
409e88:	ff 15 dc 04 4b 00    	call   *0x4b04dc
409e8e:	50                   	push   %eax
409e8f:	e8 00 ff ff ff       	call   0x409d94
409e94:	8b 45 e8             	mov    -0x18(%ebp),%eax
409e97:	03 c6                	add    %esi,%eax
409e99:	50                   	push   %eax
409e9a:	57                   	push   %edi
409e9b:	ff 75 0c             	push   0xc(%ebp)
409e9e:	89 45 c4             	mov    %eax,-0x3c(%ebp)
409ea1:	ff 15 dc 04 4b 00    	call   *0x4b04dc
409ea7:	50                   	push   %eax
409ea8:	e8 e7 fe ff ff       	call   0x409d94
409ead:	8b 45 e4             	mov    -0x1c(%ebp),%eax
409eb0:	03 c6                	add    %esi,%eax
409eb2:	50                   	push   %eax
409eb3:	57                   	push   %edi
409eb4:	ff 75 08             	push   0x8(%ebp)
409eb7:	89 45 cc             	mov    %eax,-0x34(%ebp)
409eba:	ff 15 e0 04 4b 00    	call   *0x4b04e0
409ec0:	50                   	push   %eax
409ec1:	e8 ce fe ff ff       	call   0x409d94
409ec6:	8b 45 e0             	mov    -0x20(%ebp),%eax
409ec9:	03 f0                	add    %eax,%esi
409ecb:	56                   	push   %esi
409ecc:	57                   	push   %edi
409ecd:	ff 75 0c             	push   0xc(%ebp)
409ed0:	ff 15 e0 04 4b 00    	call   *0x4b04e0
409ed6:	50                   	push   %eax
409ed7:	e8 b8 fe ff ff       	call   0x409d94
409edc:	8b 45 cc             	mov    -0x34(%ebp),%eax
409edf:	8b 4d c8             	mov    -0x38(%ebp),%ecx
409ee2:	8b 00                	mov    (%eax),%eax
409ee4:	2b 01                	sub    (%ecx),%eax
409ee6:	8b 0e                	mov    (%esi),%ecx
409ee8:	8b 55 c4             	mov    -0x3c(%ebp),%edx
409eeb:	2b 0a                	sub    (%edx),%ecx
409eed:	3b c1                	cmp    %ecx,%eax
409eef:	74 2b                	je     0x409f1c
409ef1:	ff 75 ec             	push   -0x14(%ebp)
409ef4:	e8 87 61 03 00       	call   0x440080
409ef9:	59                   	pop    %ecx
409efa:	ff 75 e8             	push   -0x18(%ebp)
409efd:	e8 7e 61 03 00       	call   0x440080
409f02:	59                   	pop    %ecx
409f03:	ff 75 e4             	push   -0x1c(%ebp)
409f06:	e8 75 61 03 00       	call   0x440080
409f0b:	59                   	pop    %ecx
409f0c:	ff 75 e0             	push   -0x20(%ebp)
409f0f:	e8 6c 61 03 00       	call   0x440080
409f14:	59                   	pop    %ecx
409f15:	33 c0                	xor    %eax,%eax
409f17:	e9 f0 00 00 00       	jmp    0x40a00c
409f1c:	40                   	inc    %eax
409f1d:	0f af d8             	imul   %eax,%ebx
409f20:	8b c7                	mov    %edi,%eax
409f22:	e9 43 ff ff ff       	jmp    0x409e6a
409f27:	8b 35 e4 04 4b 00    	mov    0x4b04e4,%esi
409f2d:	8d 45 dc             	lea    -0x24(%ebp),%eax
409f30:	50                   	push   %eax
409f31:	ff 75 08             	push   0x8(%ebp)
409f34:	ff d6                	call   *%esi
409f36:	50                   	push   %eax
409f37:	e8 58 fe ff ff       	call   0x409d94
409f3c:	8d 45 d8             	lea    -0x28(%ebp),%eax
409f3f:	50                   	push   %eax
409f40:	ff 75 0c             	push   0xc(%ebp)
409f43:	ff d6                	call   *%esi
409f45:	50                   	push   %eax
409f46:	e8 49 fe ff ff       	call   0x409d94
409f4b:	0f af 5d d4          	imul   -0x2c(%ebp),%ebx
409f4f:	53                   	push   %ebx
409f50:	ff 75 d8             	push   -0x28(%ebp)
409f53:	ff 75 dc             	push   -0x24(%ebp)
409f56:	e8 45 ea 00 00       	call   0x4189a0
409f5b:	8b 35 e8 04 4b 00    	mov    0x4b04e8,%esi
409f61:	33 c9                	xor    %ecx,%ecx
409f63:	83 c4 0c             	add    $0xc,%esp
409f66:	ff 75 08             	push   0x8(%ebp)
409f69:	85 c0                	test   %eax,%eax
409f6b:	0f 94 c1             	sete   %cl
409f6e:	8b f9                	mov    %ecx,%edi
409f70:	ff d6                	call   *%esi
409f72:	50                   	push   %eax
409f73:	e8 1c fe ff ff       	call   0x409d94
409f78:	ff 75 0c             	push   0xc(%ebp)
409f7b:	ff d6                	call   *%esi
409f7d:	50                   	push   %eax
409f7e:	e8 11 fe ff ff       	call   0x409d94
409f83:	ff 75 ec             	push   -0x14(%ebp)
409f86:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
409f8a:	e8 f1 60 03 00       	call   0x440080
409f8f:	ff 75 e8             	push   -0x18(%ebp)
409f92:	e8 e9 60 03 00       	call   0x440080
409f97:	ff 75 e4             	push   -0x1c(%ebp)
409f9a:	e8 e1 60 03 00       	call   0x440080
409f9f:	ff 75 e0             	push   -0x20(%ebp)
409fa2:	e8 d9 60 03 00       	call   0x440080
409fa7:	83 c4 10             	add    $0x10,%esp
409faa:	8b c7                	mov    %edi,%eax
409fac:	eb 5e                	jmp    0x40a00c
409fae:	ff 75 ec             	push   -0x14(%ebp)
409fb1:	e8 ca 60 03 00       	call   0x440080
409fb6:	ff 75 e8             	push   -0x18(%ebp)
409fb9:	e8 c2 60 03 00       	call   0x440080
409fbe:	ff 75 e4             	push   -0x1c(%ebp)
409fc1:	e8 ba 60 03 00       	call   0x440080
409fc6:	ff 75 e0             	push   -0x20(%ebp)
409fc9:	e8 b2 60 03 00       	call   0x440080
409fce:	33 f6                	xor    %esi,%esi
409fd0:	83 c4 10             	add    $0x10,%esp
409fd3:	39 75 dc             	cmp    %esi,-0x24(%ebp)
409fd6:	74 0f                	je     0x409fe7
409fd8:	ff 75 08             	push   0x8(%ebp)
409fdb:	ff 15 e8 04 4b 00    	call   *0x4b04e8
409fe1:	50                   	push   %eax
409fe2:	e8 ad fd ff ff       	call   0x409d94
409fe7:	39 75 d8             	cmp    %esi,-0x28(%ebp)
409fea:	74 0f                	je     0x409ffb
409fec:	ff 75 0c             	push   0xc(%ebp)
409fef:	ff 15 e8 04 4b 00    	call   *0x4b04e8
409ff5:	50                   	push   %eax
409ff6:	e8 99 fd ff ff       	call   0x409d94
409ffb:	56                   	push   %esi
409ffc:	56                   	push   %esi
409ffd:	e8 55 d5 00 00       	call   0x417557
40a002:	33 c9                	xor    %ecx,%ecx
40a004:	3b 45 0c             	cmp    0xc(%ebp),%eax
40a007:	0f 94 c1             	sete   %cl
40a00a:	8b c1                	mov    %ecx,%eax
40a00c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40a00f:	5f                   	pop    %edi
40a010:	5e                   	pop    %esi
40a011:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40a018:	5b                   	pop    %ebx
40a019:	c9                   	leave
40a01a:	c2 08 00             	ret    $0x8
40a01d:	55                   	push   %ebp
40a01e:	8b ec                	mov    %esp,%ebp