409afe:	8b 46 50             	mov    0x50(%esi),%eax
409b01:	3b c5                	cmp    %ebp,%eax
409b03:	8b 1d 98 70 41 00    	mov    0x417098,%ebx
409b09:	74 10                	je     0x409b1b
409b0b:	50                   	push   %eax
409b0c:	ff d3                	call   *%ebx
409b0e:	85 c0                	test   %eax,%eax
409b10:	75 09                	jne    0x409b1b
409b12:	ff 76 50             	push   0x50(%esi)
409b15:	e8 39 c9 ff ff       	call   0x406453
409b1a:	59                   	pop    %ecx
409b1b:	8b 46 54             	mov    0x54(%esi),%eax
409b1e:	3b c5                	cmp    %ebp,%eax
409b20:	74 10                	je     0x409b32
409b22:	50                   	push   %eax
409b23:	ff d3                	call   *%ebx
409b25:	85 c0                	test   %eax,%eax
409b27:	75 09                	jne    0x409b32
409b29:	ff 76 54             	push   0x54(%esi)
409b2c:	e8 22 c9 ff ff       	call   0x406453
409b31:	59                   	pop    %ecx
409b32:	8b 44 24 18          	mov    0x18(%esp),%eax
409b36:	89 46 50             	mov    %eax,0x50(%esi)
409b39:	89 7e 48             	mov    %edi,0x48(%esi)
409b3c:	8b c7                	mov    %edi,%eax
409b3e:	eb 47                	jmp    0x409b87
409b40:	ff 74 24 18          	push   0x18(%esp)
409b44:	e8 0a c9 ff ff       	call   0x406453
409b49:	8b 46 50             	mov    0x50(%esi),%eax
409b4c:	3b c5                	cmp    %ebp,%eax
409b4e:	8b 3d 98 70 41 00    	mov    0x417098,%edi
409b54:	59                   	pop    %ecx
409b55:	74 10                	je     0x409b67
409b57:	50                   	push   %eax
409b58:	ff d7                	call   *%edi
409b5a:	85 c0                	test   %eax,%eax
409b5c:	75 09                	jne    0x409b67
409b5e:	ff 76 50             	push   0x50(%esi)
409b61:	e8 ed c8 ff ff       	call   0x406453
409b66:	59                   	pop    %ecx
409b67:	8b 46 54             	mov    0x54(%esi),%eax
409b6a:	3b c5                	cmp    %ebp,%eax
409b6c:	74 10                	je     0x409b7e
409b6e:	50                   	push   %eax
409b6f:	ff d7                	call   *%edi
409b71:	85 c0                	test   %eax,%eax
409b73:	75 09                	jne    0x409b7e
409b75:	ff 76 54             	push   0x54(%esi)
409b78:	e8 d6 c8 ff ff       	call   0x406453
409b7d:	59                   	pop    %ecx
409b7e:	8b 46 68             	mov    0x68(%esi),%eax
409b81:	89 6e 50             	mov    %ebp,0x50(%esi)
409b84:	89 6e 48             	mov    %ebp,0x48(%esi)
409b87:	5f                   	pop    %edi
409b88:	89 6e 4c             	mov    %ebp,0x4c(%esi)
409b8b:	89 6e 54             	mov    %ebp,0x54(%esi)
409b8e:	5d                   	pop    %ebp
409b8f:	5b                   	pop    %ebx
409b90:	83 c4 10             	add    $0x10,%esp
409b93:	c3                   	ret
409b94:	55                   	push   %ebp
409b95:	8d 6c 24 a0          	lea    -0x60(%esp),%ebp
409b99:	81 ec b4 00 00 00    	sub    $0xb4,%esp
409b9f:	a1 20 c5 41 00       	mov    0x41c520,%eax
409ba4:	33 c5                	xor    %ebp,%eax
409ba6:	89 45 5c             	mov    %eax,0x5c(%ebp)
409ba9:	8b 45 6c             	mov    0x6c(%ebp),%eax
409bac:	53                   	push   %ebx
409bad:	56                   	push   %esi
409bae:	8b 75 68             	mov    0x68(%ebp),%esi
409bb1:	57                   	push   %edi
409bb2:	8b 7d 74             	mov    0x74(%ebp),%edi
409bb5:	89 45 c4             	mov    %eax,-0x3c(%ebp)
409bb8:	8b 45 78             	mov    0x78(%ebp),%eax
409bbb:	89 7d bc             	mov    %edi,-0x44(%ebp)
409bbe:	89 45 c0             	mov    %eax,-0x40(%ebp)
409bc1:	e8 86 29 00 00       	call   0x40c54c
409bc6:	05 9c 00 00 00       	add    $0x9c,%eax
409bcb:	8d 48 28             	lea    0x28(%eax),%ecx
409bce:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
409bd1:	8d 48 2c             	lea    0x2c(%eax),%ecx
409bd4:	8d 58 20             	lea    0x20(%eax),%ebx
409bd7:	05 af 00 00 00       	add    $0xaf,%eax
409bdc:	85 f6                	test   %esi,%esi
409bde:	89 4d b8             	mov    %ecx,-0x48(%ebp)
409be1:	89 45 c8             	mov    %eax,-0x38(%ebp)
409be4:	0f 84 6a 01 00 00    	je     0x409d54
409bea:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
409bee:	0f 84 60 01 00 00    	je     0x409d54
409bf4:	83 7d 70 00          	cmpl   $0x0,0x70(%ebp)
409bf8:	0f 84 56 01 00 00    	je     0x409d54
409bfe:	80 3e 43             	cmpb   $0x43,(%esi)
409c01:	75 4c                	jne    0x409c4f
409c03:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
409c07:	75 46                	jne    0x409c4f
409c09:	68 ac 75 41 00       	push   $0x4175ac
409c0e:	ff 75 70             	push   0x70(%ebp)
409c11:	ff 75 c4             	push   -0x3c(%ebp)
409c14:	e8 82 10 00 00       	call   0x40ac9b
409c19:	83 c4 0c             	add    $0xc,%esp
409c1c:	33 f6                	xor    %esi,%esi
409c1e:	85 c0                	test   %eax,%eax
409c20:	74 0d                	je     0x409c2f
409c22:	56                   	push   %esi
409c23:	56                   	push   %esi
409c24:	56                   	push   %esi
409c25:	56                   	push   %esi
409c26:	56                   	push   %esi
409c27:	e8 28 d9 ff ff       	call   0x407554
409c2c:	83 c4 14             	add    $0x14,%esp
409c2f:	3b fe                	cmp    %esi,%edi
409c31:	74 0b                	je     0x409c3e
409c33:	66 89 37             	mov    %si,(%edi)
409c36:	66 89 77 02          	mov    %si,0x2(%edi)
409c3a:	66 89 77 04          	mov    %si,0x4(%edi)
409c3e:	8b 45 c0             	mov    -0x40(%ebp),%eax
409c41:	3b c6                	cmp    %esi,%eax
409c43:	74 02                	je     0x409c47
409c45:	89 30                	mov    %esi,(%eax)
409c47:	8b 45 c4             	mov    -0x3c(%ebp),%eax
409c4a:	e9 07 01 00 00       	jmp    0x409d56
409c4f:	56                   	push   %esi
409c50:	e8 0b cb ff ff       	call   0x406760
409c55:	bf 83 00 00 00       	mov    $0x83,%edi
409c5a:	3b c7                	cmp    %edi,%eax
409c5c:	59                   	pop    %ecx
409c5d:	89 45 b0             	mov    %eax,-0x50(%ebp)
409c60:	73 22                	jae    0x409c84
409c62:	56                   	push   %esi
409c63:	ff 75 c8             	push   -0x38(%ebp)
409c66:	e8 25 12 00 00       	call   0x40ae90
409c6b:	85 c0                	test   %eax,%eax
409c6d:	59                   	pop    %ecx
409c6e:	59                   	pop    %ecx
409c6f:	0f 84 8e 00 00 00    	je     0x409d03
409c75:	56                   	push   %esi
409c76:	ff 75 b8             	push   -0x48(%ebp)
409c79:	e8 12 12 00 00       	call   0x40ae90
409c7e:	85 c0                	test   %eax,%eax
409c80:	59                   	pop    %ecx
409c81:	59                   	pop    %ecx
409c82:	74 7f                	je     0x409d03
409c84:	83 65 ac 00          	andl   $0x0,-0x54(%ebp)
409c88:	8d 45 cc             	lea    -0x34(%ebp),%eax
409c8b:	56                   	push   %esi
409c8c:	50                   	push   %eax
409c8d:	e8 fd fb ff ff       	call   0x40988f
409c92:	85 c0                	test   %eax,%eax
409c94:	59                   	pop    %ecx
409c95:	59                   	pop    %ecx
409c96:	0f 85 b8 00 00 00    	jne    0x409d54
409c9c:	8d 45 cc             	lea    -0x34(%ebp),%eax
409c9f:	50                   	push   %eax
409ca0:	53                   	push   %ebx
409ca1:	50                   	push   %eax
409ca2:	e8 7c 83 00 00       	call   0x412023
409ca7:	83 c4 0c             	add    $0xc,%esp
409caa:	85 c0                	test   %eax,%eax
409cac:	0f 84 a2 00 00 00    	je     0x409d54
409cb2:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
409cb6:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
409cb9:	89 01                	mov    %eax,(%ecx)
409cbb:	8d 45 cc             	lea    -0x34(%ebp),%eax
409cbe:	50                   	push   %eax
409cbf:	57                   	push   %edi
409cc0:	ff 75 c8             	push   -0x38(%ebp)
409cc3:	e8 f0 fc ff ff       	call   0x4099b8
409cc8:	83 c4 0c             	add    $0xc,%esp
409ccb:	80 3e 00             	cmpb   $0x0,(%esi)
409cce:	74 07                	je     0x409cd7
409cd0:	8b 45 b0             	mov    -0x50(%ebp),%eax
409cd3:	3b c7                	cmp    %edi,%eax
409cd5:	72 08                	jb     0x409cdf
409cd7:	8b 45 ac             	mov    -0x54(%ebp),%eax
409cda:	be 0e 76 41 00       	mov    $0x41760e,%esi
409cdf:	40                   	inc    %eax
409ce0:	50                   	push   %eax
409ce1:	56                   	push   %esi
409ce2:	57                   	push   %edi
409ce3:	ff 75 b8             	push   -0x48(%ebp)
409ce6:	e8 0b 7d 00 00       	call   0x4119f6
409ceb:	83 c4 10             	add    $0x10,%esp
409cee:	85 c0                	test   %eax,%eax
409cf0:	74 11                	je     0x409d03
409cf2:	33 f6                	xor    %esi,%esi
409cf4:	56                   	push   %esi
409cf5:	56                   	push   %esi
409cf6:	56                   	push   %esi
409cf7:	56                   	push   %esi
409cf8:	56                   	push   %esi
409cf9:	e8 56 d8 ff ff       	call   0x407554
409cfe:	83 c4 14             	add    $0x14,%esp
409d01:	eb 02                	jmp    0x409d05
409d03:	33 f6                	xor    %esi,%esi
409d05:	39 75 bc             	cmp    %esi,-0x44(%ebp)
409d08:	74 0e                	je     0x409d18
409d0a:	6a 06                	push   $0x6
409d0c:	53                   	push   %ebx
409d0d:	ff 75 bc             	push   -0x44(%ebp)
409d10:	e8 bb be ff ff       	call   0x405bd0
409d15:	83 c4 0c             	add    $0xc,%esp
409d18:	39 75 c0             	cmp    %esi,-0x40(%ebp)
409d1b:	74 10                	je     0x409d2d
409d1d:	6a 04                	push   $0x4
409d1f:	ff 75 b4             	push   -0x4c(%ebp)
409d22:	ff 75 c0             	push   -0x40(%ebp)
409d25:	e8 a6 be ff ff       	call   0x405bd0
409d2a:	83 c4 0c             	add    $0xc,%esp
409d2d:	ff 75 c8             	push   -0x38(%ebp)
409d30:	ff 75 70             	push   0x70(%ebp)
409d33:	ff 75 c4             	push   -0x3c(%ebp)
409d36:	e8 60 0f 00 00       	call   0x40ac9b
409d3b:	83 c4 0c             	add    $0xc,%esp
409d3e:	85 c0                	test   %eax,%eax
409d40:	74 0d                	je     0x409d4f
409d42:	56                   	push   %esi
409d43:	56                   	push   %esi
409d44:	56                   	push   %esi
409d45:	56                   	push   %esi
409d46:	56                   	push   %esi
409d47:	e8 08 d8 ff ff       	call   0x407554
409d4c:	83 c4 14             	add    $0x14,%esp
409d4f:	8b 45 c8             	mov    -0x38(%ebp),%eax
409d52:	eb 02                	jmp    0x409d56
409d54:	33 c0                	xor    %eax,%eax
409d56:	8b 4d 5c             	mov    0x5c(%ebp),%ecx
409d59:	5f                   	pop    %edi
409d5a:	5e                   	pop    %esi
409d5b:	33 cd                	xor    %ebp,%ecx
409d5d:	5b                   	pop    %ebx
409d5e:	e8 d2 c1 ff ff       	call   0x405f35
409d63:	83 c5 60             	add    $0x60,%ebp
409d66:	c9                   	leave
409d67:	c3                   	ret
409d68:	55                   	push   %ebp
409d69:	8d 6c 24 8c          	lea    -0x74(%esp),%ebp
409d6d:	81 ec c4 01 00 00    	sub    $0x1c4,%esp
409d73:	a1 20 c5 41 00       	mov    0x41c520,%eax
409d78:	33 c5                	xor    %ebp,%eax
409d7a:	89 45 70             	mov    %eax,0x70(%ebp)
409d7d:	53                   	push   %ebx
409d7e:	57                   	push   %edi
409d7f:	8b d9                	mov    %ecx,%ebx
409d81:	e8 c6 27 00 00       	call   0x40c54c
409d86:	ff 75 7c             	push   0x7c(%ebp)
409d89:	8b f8                	mov    %eax,%edi
409d8b:	8d 85 dc fe ff ff    	lea    -0x124(%ebp),%eax
409d91:	50                   	push   %eax
409d92:	8d 85 c4 fe ff ff    	lea    -0x13c(%ebp),%eax
409d98:	50                   	push   %eax
409d99:	68 83 00 00 00       	push   $0x83
409d9e:	8d 45 ec             	lea    -0x14(%ebp),%eax
409da1:	50                   	push   %eax
409da2:	53                   	push   %ebx
409da3:	81 c7 d0 01 00 00    	add    $0x1d0,%edi
409da9:	e8 e6 fd ff ff       	call   0x409b94
409dae:	83 c4 18             	add    $0x18,%esp
409db1:	85 c0                	test   %eax,%eax
409db3:	75 07                	jne    0x409dbc
409db5:	33 c0                	xor    %eax,%eax
409db7:	e9 91 02 00 00       	jmp    0x40a04d
409dbc:	8b 45 7c             	mov    0x7c(%ebp),%eax
409dbf:	c1 e0 04             	shl    $0x4,%eax
409dc2:	8d 1c 30             	lea    (%eax,%esi,1),%ebx
409dc5:	ff 73 48             	push   0x48(%ebx)
409dc8:	8d 45 ec             	lea    -0x14(%ebp),%eax
409dcb:	50                   	push   %eax
409dcc:	e8 bf 10 00 00       	call   0x40ae90
409dd1:	85 c0                	test   %eax,%eax
409dd3:	59                   	pop    %ecx
409dd4:	59                   	pop    %ecx
409dd5:	0f 84 6f 02 00 00    	je     0x40a04a
409ddb:	8d 45 ec             	lea    -0x14(%ebp),%eax
409dde:	50                   	push   %eax
409ddf:	e8 7c c9 ff ff       	call   0x406760
409de4:	83 c0 05             	add    $0x5,%eax
409de7:	50                   	push   %eax
409de8:	89 85 e8 fe ff ff    	mov    %eax,-0x118(%ebp)
409dee:	e8 f9 f4 ff ff       	call   0x4092ec
409df3:	85 c0                	test   %eax,%eax
409df5:	59                   	pop    %ecx
409df6:	59                   	pop    %ecx
409df7:	89 85 e4 fe ff ff    	mov    %eax,-0x11c(%ebp)
409dfd:	74 b6                	je     0x409db5
409dff:	8b 43 48             	mov    0x48(%ebx),%eax
409e02:	8b 4d 7c             	mov    0x7c(%ebp),%ecx
409e05:	89 85 d0 fe ff ff    	mov    %eax,-0x130(%ebp)
409e0b:	8d 44 8e 0c          	lea    0xc(%esi,%ecx,4),%eax
409e0f:	83 c1 06             	add    $0x6,%ecx
409e12:	6b c9 06             	imul   $0x6,%ecx,%ecx
409e15:	89 85 e0 fe ff ff    	mov    %eax,-0x120(%ebp)
409e1b:	8b 00                	mov    (%eax),%eax
409e1d:	89 85 cc fe ff ff    	mov    %eax,-0x134(%ebp)
409e23:	8d 04 31             	lea    (%ecx,%esi,1),%eax
409e26:	6a 06                	push   $0x6
409e28:	50                   	push   %eax
409e29:	89 85 d8 fe ff ff    	mov    %eax,-0x128(%ebp)
409e2f:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
409e35:	50                   	push   %eax
409e36:	e8 95 bd ff ff       	call   0x405bd0
409e3b:	8b 46 04             	mov    0x4(%esi),%eax
409e3e:	8d 4d ec             	lea    -0x14(%ebp),%ecx
409e41:	51                   	push   %ecx
409e42:	8b 8d e8 fe ff ff    	mov    -0x118(%ebp),%ecx
409e48:	89 85 c0 fe ff ff    	mov    %eax,-0x140(%ebp)
409e4e:	8b 85 e4 fe ff ff    	mov    -0x11c(%ebp),%eax
409e54:	83 c1 fc             	add    $0xfffffffc,%ecx
409e57:	83 c0 04             	add    $0x4,%eax
409e5a:	51                   	push   %ecx
409e5b:	50                   	push   %eax
409e5c:	e8 3a 0e 00 00       	call   0x40ac9b
409e61:	83 c4 18             	add    $0x18,%esp
409e64:	85 c0                	test   %eax,%eax
409e66:	74 0f                	je     0x409e77
409e68:	33 c0                	xor    %eax,%eax
409e6a:	50                   	push   %eax
409e6b:	50                   	push   %eax
409e6c:	50                   	push   %eax
409e6d:	50                   	push   %eax
409e6e:	50                   	push   %eax
409e6f:	e8 e0 d6 ff ff       	call   0x407554
409e74:	83 c4 14             	add    $0x14,%esp
409e77:	8b 85 e4 fe ff ff    	mov    -0x11c(%ebp),%eax
409e7d:	8b 8d e0 fe ff ff    	mov    -0x120(%ebp),%ecx
409e83:	83 c0 04             	add    $0x4,%eax
409e86:	89 43 48             	mov    %eax,0x48(%ebx)
409e89:	0f b7 85 c4 fe ff ff 	movzwl -0x13c(%ebp),%eax
409e90:	89 01                	mov    %eax,(%ecx)
409e92:	6a 06                	push   $0x6
409e94:	8d 85 c4 fe ff ff    	lea    -0x13c(%ebp),%eax
409e9a:	50                   	push   %eax
409e9b:	ff b5 d8 fe ff ff    	push   -0x128(%ebp)
409ea1:	e8 2a bd ff ff       	call   0x405bd0
409ea6:	83 c4 0c             	add    $0xc,%esp
409ea9:	83 7d 7c 02          	cmpl   $0x2,0x7c(%ebp)
409ead:	0f 85 f4 00 00 00    	jne    0x409fa7
409eb3:	8b 85 dc fe ff ff    	mov    -0x124(%ebp),%eax
409eb9:	83 a5 e8 fe ff ff 00 	andl   $0x0,-0x118(%ebp)
409ec0:	89 46 04             	mov    %eax,0x4(%esi)
409ec3:	8b 47 24             	mov    0x24(%edi),%eax
409ec6:	8b 4f 20             	mov    0x20(%edi),%ecx
409ec9:	89 85 d8 fe ff ff    	mov    %eax,-0x128(%ebp)
409ecf:	8b c7                	mov    %edi,%eax
409ed1:	8b 56 04             	mov    0x4(%esi),%edx
409ed4:	3b 10                	cmp    (%eax),%edx
409ed6:	74 36                	je     0x409f0e
409ed8:	8b 10                	mov    (%eax),%edx
409eda:	ff 85 e8 fe ff ff    	incl   -0x118(%ebp)
409ee0:	89 08                	mov    %ecx,(%eax)
409ee2:	8b 8d d8 fe ff ff    	mov    -0x128(%ebp),%ecx