404a99:	8b ce                	mov    %esi,%ecx
404a9b:	ff 15 20 f2 40 00    	call   *0x40f220
404aa1:	ff d6                	call   *%esi
404aa3:	85 c0                	test   %eax,%eax
404aa5:	0f 88 a6 01 00 00    	js     0x404c51
404aab:	8b 45 d4             	mov    -0x2c(%ebp),%eax
404aae:	33 f6                	xor    %esi,%esi
404ab0:	89 75 e0             	mov    %esi,-0x20(%ebp)
404ab3:	89 75 d8             	mov    %esi,-0x28(%ebp)
404ab6:	0f b7 40 2c          	movzwl 0x2c(%eax),%eax
404aba:	21 35 74 c0 40 00    	and    %esi,0x40c074
404ac0:	89 45 c8             	mov    %eax,-0x38(%ebp)
404ac3:	a3 78 c0 40 00       	mov    %eax,0x40c078
404ac8:	85 c0                	test   %eax,%eax
404aca:	0f 84 92 00 00 00    	je     0x404b62
404ad0:	21 75 fc             	and    %esi,-0x4(%ebp)
404ad3:	33 c9                	xor    %ecx,%ecx
404ad5:	6a 0c                	push   $0xc
404ad7:	5a                   	pop    %edx
404ad8:	f7 e2                	mul    %edx
404ada:	0f 90 c1             	seto   %cl
404add:	f7 d9                	neg    %ecx
404adf:	0b c8                	or     %eax,%ecx
404ae1:	33 c0                	xor    %eax,%eax
404ae3:	83 c1 04             	add    $0x4,%ecx
404ae6:	0f 92 c0             	setb   %al
404ae9:	f7 d8                	neg    %eax
404aeb:	0b c1                	or     %ecx,%eax
404aed:	50                   	push   %eax
404aee:	e8 56 42 00 00       	call   0x408d49
404af3:	59                   	pop    %ecx
404af4:	89 45 c4             	mov    %eax,-0x3c(%ebp)
404af7:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404afb:	85 c0                	test   %eax,%eax
404afd:	74 20                	je     0x404b1f
404aff:	8b 4d c8             	mov    -0x38(%ebp),%ecx
404b02:	8d 70 04             	lea    0x4(%eax),%esi
404b05:	68 20 39 40 00       	push   $0x403920
404b0a:	68 70 4a 40 00       	push   $0x404a70
404b0f:	51                   	push   %ecx
404b10:	6a 0c                	push   $0xc
404b12:	56                   	push   %esi
404b13:	89 08                	mov    %ecx,(%eax)
404b15:	89 75 e0             	mov    %esi,-0x20(%ebp)
404b18:	e8 34 52 00 00       	call   0x409d51
404b1d:	eb 19                	jmp    0x404b38
404b1f:	33 f6                	xor    %esi,%esi
404b21:	eb 12                	jmp    0x404b35
404b23:	8b 5d ec             	mov    -0x14(%ebp),%ebx
404b26:	b8 2c 4b 40 00       	mov    $0x404b2c,%eax
404b2b:	c3                   	ret
404b2c:	8b 5d ec             	mov    -0x14(%ebp),%ebx
404b2f:	8b 7b 08             	mov    0x8(%ebx),%edi
404b32:	8b 75 d8             	mov    -0x28(%ebp),%esi
404b35:	89 75 e0             	mov    %esi,-0x20(%ebp)
404b38:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404b3c:	85 f6                	test   %esi,%esi
404b3e:	75 1d                	jne    0x404b5d
404b40:	8b 07                	mov    (%edi),%eax
404b42:	ff 75 d4             	push   -0x2c(%ebp)
404b45:	57                   	push   %edi
404b46:	8b 70 4c             	mov    0x4c(%eax),%esi
404b49:	8b ce                	mov    %esi,%ecx
404b4b:	ff 15 20 f2 40 00    	call   *0x40f220
404b51:	ff d6                	call   *%esi
404b53:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
404b58:	e9 f6 00 00 00       	jmp    0x404c53
404b5d:	a1 78 c0 40 00       	mov    0x40c078,%eax
404b62:	33 c9                	xor    %ecx,%ecx
404b64:	89 4d c8             	mov    %ecx,-0x38(%ebp)
404b67:	85 c0                	test   %eax,%eax
404b69:	0f 8e c7 00 00 00    	jle    0x404c36
404b6f:	8d 46 08             	lea    0x8(%esi),%eax
404b72:	89 45 d8             	mov    %eax,-0x28(%ebp)
404b75:	83 60 fc 00          	andl   $0x0,-0x4(%eax)
404b79:	83 20 00             	andl   $0x0,(%eax)
404b7c:	8d 45 dc             	lea    -0x24(%ebp),%eax
404b7f:	8b 37                	mov    (%edi),%esi
404b81:	50                   	push   %eax
404b82:	51                   	push   %ecx
404b83:	57                   	push   %edi
404b84:	8b 76 14             	mov    0x14(%esi),%esi
404b87:	8b ce                	mov    %esi,%ecx
404b89:	ff 15 20 f2 40 00    	call   *0x40f220
404b8f:	ff d6                	call   *%esi
404b91:	85 c0                	test   %eax,%eax
404b93:	0f 88 81 00 00 00    	js     0x404c1a
404b99:	33 c0                	xor    %eax,%eax
404b9b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
404b9e:	50                   	push   %eax
404b9f:	50                   	push   %eax
404ba0:	50                   	push   %eax
404ba1:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
404ba8:	8d 45 e4             	lea    -0x1c(%ebp),%eax
404bab:	8b 37                	mov    (%edi),%esi
404bad:	50                   	push   %eax
404bae:	8b 45 dc             	mov    -0x24(%ebp),%eax
404bb1:	8b 76 30             	mov    0x30(%esi),%esi
404bb4:	8b ce                	mov    %esi,%ecx
404bb6:	ff 30                	push   (%eax)
404bb8:	57                   	push   %edi
404bb9:	ff 15 20 f2 40 00    	call   *0x40f220
404bbf:	ff d6                	call   *%esi
404bc1:	85 c0                	test   %eax,%eax
404bc3:	78 34                	js     0x404bf9
404bc5:	8b 75 d8             	mov    -0x28(%ebp),%esi
404bc8:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
404bcb:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
404bcf:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
404bd2:	8b 46 f8             	mov    -0x8(%esi),%eax
404bd5:	3b c1                	cmp    %ecx,%eax
404bd7:	74 0d                	je     0x404be6
404bd9:	50                   	push   %eax
404bda:	ff 15 d0 f0 40 00    	call   *0x40f0d0
404be0:	8b 45 c4             	mov    -0x3c(%ebp),%eax
404be3:	89 46 f8             	mov    %eax,-0x8(%esi)
404be6:	50                   	push   %eax
404be7:	ff 15 e4 f0 40 00    	call   *0x40f0e4
404bed:	8b 4d dc             	mov    -0x24(%ebp),%ecx
404bf0:	89 46 fc             	mov    %eax,-0x4(%esi)
404bf3:	8b 01                	mov    (%ecx),%eax
404bf5:	89 06                	mov    %eax,(%esi)
404bf7:	eb 03                	jmp    0x404bfc
404bf9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
404bfc:	8b 07                	mov    (%edi),%eax
404bfe:	51                   	push   %ecx
404bff:	57                   	push   %edi
404c00:	8b 70 50             	mov    0x50(%eax),%esi
404c03:	8b ce                	mov    %esi,%ecx
404c05:	ff 15 20 f2 40 00    	call   *0x40f220
404c0b:	ff d6                	call   *%esi
404c0d:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
404c11:	ff 75 e4             	push   -0x1c(%ebp)
404c14:	ff 15 d0 f0 40 00    	call   *0x40f0d0
404c1a:	8b 4d c8             	mov    -0x38(%ebp),%ecx
404c1d:	8b 45 d8             	mov    -0x28(%ebp),%eax
404c20:	41                   	inc    %ecx
404c21:	83 c0 0c             	add    $0xc,%eax
404c24:	89 4d c8             	mov    %ecx,-0x38(%ebp)
404c27:	89 45 d8             	mov    %eax,-0x28(%ebp)
404c2a:	3b 0d 78 c0 40 00    	cmp    0x40c078,%ecx
404c30:	0f 8c 3f ff ff ff    	jl     0x404b75
404c36:	8b 45 e0             	mov    -0x20(%ebp),%eax
404c39:	ff 75 d4             	push   -0x2c(%ebp)
404c3c:	a3 74 c0 40 00       	mov    %eax,0x40c074
404c41:	8b 07                	mov    (%edi),%eax
404c43:	57                   	push   %edi
404c44:	8b 70 4c             	mov    0x4c(%eax),%esi
404c47:	8b ce                	mov    %esi,%ecx
404c49:	ff 15 20 f2 40 00    	call   *0x40f220
404c4f:	ff d6                	call   *%esi
404c51:	33 c0                	xor    %eax,%eax
404c53:	e8 d3 56 00 00       	call   0x40a32b
404c58:	c2 04 00             	ret    $0x4
404c5b:	68 28 02 00 00       	push   $0x228
404c60:	b8 2f a5 40 00       	mov    $0x40a52f,%eax
404c65:	e8 97 51 00 00       	call   0x409e01
404c6a:	83 3d 6c c0 40 00 00 	cmpl   $0x0,0x40c06c
404c71:	74 10                	je     0x404c83
404c73:	83 3d 74 c0 40 00 00 	cmpl   $0x0,0x40c074
404c7a:	74 07                	je     0x404c83
404c7c:	33 c0                	xor    %eax,%eax
404c7e:	e9 8d 02 00 00       	jmp    0x404f10
404c83:	a1 a4 c5 40 00       	mov    0x40c5a4,%eax
404c88:	83 c0 10             	add    $0x10,%eax
404c8b:	89 85 cc fd ff ff    	mov    %eax,-0x234(%ebp)
404c91:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404c95:	50                   	push   %eax
404c96:	ff 15 60 f0 40 00    	call   *0x40f060
404c9c:	83 3d 6c c0 40 00 00 	cmpl   $0x0,0x40c06c
404ca3:	bf 05 40 00 80       	mov    $0x80004005,%edi
404ca8:	c6 85 d0 fd ff ff 01 	movb   $0x1,-0x230(%ebp)
404caf:	0f 85 31 02 00 00    	jne    0x404ee6
404cb5:	83 a5 d8 fd ff ff 00 	andl   $0x0,-0x228(%ebp)
404cbc:	b9 b0 c5 40 00       	mov    $0x40c5b0,%ecx
404cc1:	8b 15 64 c0 40 00    	mov    0x40c064,%edx
404cc7:	e8 fd 10 00 00       	call   0x405dc9
404ccc:	8b 0d 68 c0 40 00    	mov    0x40c068,%ecx
404cd2:	85 c0                	test   %eax,%eax
404cd4:	a1 6a c0 40 00       	mov    0x40c06a,%eax
404cd9:	74 62                	je     0x404d3d
404cdb:	be ff ff 00 00       	mov    $0xffff,%esi
404ce0:	66 3b ce             	cmp    %si,%cx
404ce3:	75 58                	jne    0x404d3d
404ce5:	66 3b c6             	cmp    %si,%ax
404ce8:	75 53                	jne    0x404d3d
404cea:	be 04 01 00 00       	mov    $0x104,%esi
404cef:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
404cf5:	56                   	push   %esi
404cf6:	50                   	push   %eax
404cf7:	ff 35 b4 c0 40 00    	push   0x40c0b4
404cfd:	ff 15 ac f0 40 00    	call   *0x40f0ac
404d03:	85 c0                	test   %eax,%eax
404d05:	0f 84 dd 01 00 00    	je     0x404ee8
404d0b:	3b c6                	cmp    %esi,%eax
404d0d:	0f 84 d5 01 00 00    	je     0x404ee8
404d13:	83 a5 e0 fd ff ff 00 	andl   $0x0,-0x220(%ebp)
404d1a:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
404d20:	50                   	push   %eax
404d21:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
404d27:	50                   	push   %eax
404d28:	ff 15 dc f0 40 00    	call   *0x40f0dc
404d2e:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
404d34:	8b f8                	mov    %eax,%edi
404d36:	e8 51 19 00 00       	call   0x40668c
404d3b:	eb 1b                	jmp    0x404d58
404d3d:	8d b5 d8 fd ff ff    	lea    -0x228(%ebp),%esi
404d43:	0f b7 c0             	movzwl %ax,%eax
404d46:	56                   	push   %esi
404d47:	ff 75 08             	push   0x8(%ebp)
404d4a:	50                   	push   %eax
404d4b:	0f b7 c1             	movzwl %cx,%eax
404d4e:	50                   	push   %eax
404d4f:	52                   	push   %edx
404d50:	ff 15 e8 f0 40 00    	call   *0x40f0e8
404d56:	8b f8                	mov    %eax,%edi
404d58:	85 ff                	test   %edi,%edi
404d5a:	0f 88 88 01 00 00    	js     0x404ee8
404d60:	83 a5 e0 fd ff ff 00 	andl   $0x0,-0x220(%ebp)
404d67:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404d6b:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
404d71:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
404d77:	51                   	push   %ecx
404d78:	ff 35 60 c0 40 00    	push   0x40c060
404d7e:	8b 30                	mov    (%eax),%esi
404d80:	50                   	push   %eax
404d81:	8b 76 18             	mov    0x18(%esi),%esi
404d84:	8b ce                	mov    %esi,%ecx
404d86:	ff 15 20 f2 40 00    	call   *0x40f220
404d8c:	ff d6                	call   *%esi
404d8e:	8b f8                	mov    %eax,%edi
404d90:	85 ff                	test   %edi,%edi
404d92:	0f 88 18 01 00 00    	js     0x404eb0
404d98:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
404d9e:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
404da4:	85 c0                	test   %eax,%eax
404da6:	74 16                	je     0x404dbe
404da8:	8b 08                	mov    (%eax),%ecx
404daa:	50                   	push   %eax
404dab:	8b 71 04             	mov    0x4(%ecx),%esi
404dae:	8b ce                	mov    %esi,%ecx
404db0:	ff 15 20 f2 40 00    	call   *0x40f220
404db6:	ff d6                	call   *%esi
404db8:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
404dbe:	83 a5 dc fd ff ff 00 	andl   $0x0,-0x224(%ebp)
404dc5:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
404dc9:	8d 8d dc fd ff ff    	lea    -0x224(%ebp),%ecx
404dcf:	8b 30                	mov    (%eax),%esi
404dd1:	51                   	push   %ecx
404dd2:	68 3c 24 40 00       	push   $0x40243c
404dd7:	50                   	push   %eax
404dd8:	8b 36                	mov    (%esi),%esi
404dda:	8b ce                	mov    %esi,%ecx
404ddc:	ff 15 20 f2 40 00    	call   *0x40f220
404de2:	ff d6                	call   *%esi
404de4:	85 c0                	test   %eax,%eax
404de6:	78 65                	js     0x404e4d
404de8:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
404dee:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
404df4:	e8 ee fa ff ff       	call   0x4048e7
404df9:	84 c0                	test   %al,%al
404dfb:	75 50                	jne    0x404e4d
404dfd:	8b 8d e4 fd ff ff    	mov    -0x21c(%ebp),%ecx
404e03:	83 a5 e4 fd ff ff 00 	andl   $0x0,-0x21c(%ebp)
404e0a:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
404e10:	89 8d d4 fd ff ff    	mov    %ecx,-0x22c(%ebp)
404e16:	85 c0                	test   %eax,%eax
404e18:	74 1f                	je     0x404e39
404e1a:	8b 30                	mov    (%eax),%esi
404e1c:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
404e22:	51                   	push   %ecx
404e23:	68 4c 24 40 00       	push   $0x40244c
404e28:	50                   	push   %eax
404e29:	8b 0e                	mov    (%esi),%ecx
404e2b:	ff 15 20 f2 40 00    	call   *0x40f220
404e31:	ff 16                	call   *(%esi)
404e33:	8b 8d d4 fd ff ff    	mov    -0x22c(%ebp),%ecx
404e39:	85 c9                	test   %ecx,%ecx
404e3b:	74 10                	je     0x404e4d
404e3d:	8b 01                	mov    (%ecx),%eax
404e3f:	51                   	push   %ecx
404e40:	8b 70 08             	mov    0x8(%eax),%esi
404e43:	8b ce                	mov    %esi,%ecx
404e45:	ff 15 20 f2 40 00    	call   *0x40f220
404e4b:	ff d6                	call   *%esi
404e4d:	8b 0d a4 c5 40 00    	mov    0x40c5a4,%ecx
404e53:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
404e59:	83 a5 e4 fd ff ff 00 	andl   $0x0,-0x21c(%ebp)
404e60:	51                   	push   %ecx
404e61:	a3 6c c0 40 00       	mov    %eax,0x40c06c
404e66:	8d 41 04             	lea    0x4(%ecx),%eax
404e69:	f7 d9                	neg    %ecx
404e6b:	1b c9                	sbb    %ecx,%ecx
404e6d:	23 c8                	and    %eax,%ecx
404e6f:	e8 20 fb ff ff       	call   0x404994
404e74:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
404e78:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
404e7e:	85 c0                	test   %eax,%eax
404e80:	74 10                	je     0x404e92
404e82:	8b 08                	mov    (%eax),%ecx
404e84:	50                   	push   %eax
404e85:	8b 71 08             	mov    0x8(%ecx),%esi
404e88:	8b ce                	mov    %esi,%ecx
404e8a:	ff 15 20 f2 40 00    	call   *0x40f220
404e90:	ff d6                	call   *%esi
404e92:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
404e96:	8b 85 e4 fd ff ff    	mov    -0x21c(%ebp),%eax
404e9c:	85 c0                	test   %eax,%eax
404e9e:	74 10                	je     0x404eb0
404ea0:	8b 08                	mov    (%eax),%ecx
404ea2:	50                   	push   %eax
404ea3:	8b 71 08             	mov    0x8(%ecx),%esi
404ea6:	8b ce                	mov    %esi,%ecx
404ea8:	ff 15 20 f2 40 00    	call   *0x40f220
404eae:	ff d6                	call   *%esi
404eb0:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
404eb6:	50                   	push   %eax
404eb7:	8b 08                	mov    (%eax),%ecx
404eb9:	8b 71 08             	mov    0x8(%ecx),%esi
404ebc:	8b ce                	mov    %esi,%ecx
404ebe:	ff 15 20 f2 40 00    	call   *0x40f220
404ec4:	ff d6                	call   *%esi
404ec6:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
404eca:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
404ed0:	85 c0                	test   %eax,%eax
404ed2:	74 14                	je     0x404ee8
404ed4:	8b 08                	mov    (%eax),%ecx
404ed6:	50                   	push   %eax
404ed7:	8b 71 08             	mov    0x8(%ecx),%esi
404eda:	8b ce                	mov    %esi,%ecx
404edc:	ff 15 20 f2 40 00    	call   *0x40f220
404ee2:	ff d6                	call   *%esi
404ee4:	eb 02                	jmp    0x404ee8
404ee6:	33 ff                	xor    %edi,%edi
404ee8:	a1 6c c0 40 00       	mov    0x40c06c,%eax
404eed:	85 c0                	test   %eax,%eax
404eef:	74 11                	je     0x404f02
404ef1:	83 3d 74 c0 40 00 00 	cmpl   $0x0,0x40c074
404ef8:	75 08                	jne    0x404f02
404efa:	50                   	push   %eax
404efb:	e8 7e fb ff ff       	call   0x404a7e
404f00:	8b f8                	mov    %eax,%edi
404f02:	ff b5 cc fd ff ff    	push   -0x234(%ebp)
404f08:	ff 15 64 f0 40 00    	call   *0x40f064
404f0e:	8b c7                	mov    %edi,%eax
404f10:	e8 9b 4e 00 00       	call   0x409db0
404f15:	c2 04 00             	ret    $0x4
404f18:	8b ff                	mov    %edi,%edi
404f1a:	55                   	push   %ebp
404f1b:	8b ec                	mov    %esp,%ebp