402ca0:	84 c0                	test   %al,%al
402ca2:	0f 85 af 9f 07 00    	jne    0x47cc57
402ca8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402cac:	6a 04                	push   $0x4
402cae:	e8 31 a9 00 00       	call   0x40d5e4
402cb3:	84 c0                	test   %al,%al
402cb5:	0f 84 d4 9f 07 00    	je     0x47cc8f
402cbb:	8b cf                	mov    %edi,%ecx
402cbd:	e8 aa 66 00 00       	call   0x40936c
402cc2:	ff 75 08             	push   0x8(%ebp)
402cc5:	0f b6 86 fc 02 00 00 	movzbl 0x2fc(%esi),%eax
402ccc:	50                   	push   %eax
402ccd:	0f b6 86 fd 02 00 00 	movzbl 0x2fd(%esi),%eax
402cd4:	50                   	push   %eax
402cd5:	ff b6 f4 02 00 00    	push   0x2f4(%esi)
402cdb:	8d 86 e8 01 00 00    	lea    0x1e8(%esi),%eax
402ce1:	53                   	push   %ebx
402ce2:	50                   	push   %eax
402ce3:	ff 77 08             	push   0x8(%edi)
402ce6:	8d 8e f8 01 00 00    	lea    0x1f8(%esi),%ecx
402cec:	e8 cf 01 00 00       	call   0x402ec0
402cf1:	89 45 fc             	mov    %eax,-0x4(%ebp)
402cf4:	85 c0                	test   %eax,%eax
402cf6:	0f 84 93 9f 07 00    	je     0x47cc8f
402cfc:	5f                   	pop    %edi
402cfd:	5e                   	pop    %esi
402cfe:	5b                   	pop    %ebx
402cff:	c9                   	leave
402d00:	c2 04 00             	ret    $0x4
402d03:	55                   	push   %ebp
402d04:	8b ec                	mov    %esp,%ebp
402d06:	56                   	push   %esi
402d07:	57                   	push   %edi
402d08:	8b f9                	mov    %ecx,%edi
402d0a:	8b 07                	mov    (%edi),%eax
402d0c:	8d 4f 04             	lea    0x4(%edi),%ecx
402d0f:	8b 40 04             	mov    0x4(%eax),%eax
402d12:	03 c8                	add    %eax,%ecx
402d14:	e8 4e 06 00 00       	call   0x403367
402d19:	8b 75 08             	mov    0x8(%ebp),%esi
402d1c:	8d 8f d8 01 00 00    	lea    0x1d8(%edi),%ecx
402d22:	8d 46 08             	lea    0x8(%esi),%eax
402d25:	50                   	push   %eax
402d26:	e8 83 af 00 00       	call   0x40dcae
402d2b:	8d 46 18             	lea    0x18(%esi),%eax
402d2e:	50                   	push   %eax
402d2f:	8d 8f e8 01 00 00    	lea    0x1e8(%edi),%ecx
402d35:	e8 b3 41 00 00       	call   0x406eed
402d3a:	8b 46 28             	mov    0x28(%esi),%eax
402d3d:	89 87 98 00 00 00    	mov    %eax,0x98(%edi)
402d43:	8b 46 2c             	mov    0x2c(%esi),%eax
402d46:	89 87 10 03 00 00    	mov    %eax,0x310(%edi)
402d4c:	ff 76 30             	push   0x30(%esi)
402d4f:	8d 8f f8 01 00 00    	lea    0x1f8(%edi),%ecx
402d55:	e8 6c 02 00 00       	call   0x402fc6
402d5a:	8b 46 34             	mov    0x34(%esi),%eax
402d5d:	89 87 18 03 00 00    	mov    %eax,0x318(%edi)
402d63:	8d 46 38             	lea    0x38(%esi),%eax
402d66:	50                   	push   %eax
402d67:	8d 8f 58 04 00 00    	lea    0x458(%edi),%ecx
402d6d:	e8 7b 41 00 00       	call   0x406eed
402d72:	83 bf fc 00 00 00 01 	cmpl   $0x1,0xfc(%edi)
402d79:	8b 46 48             	mov    0x48(%esi),%eax
402d7c:	89 87 68 04 00 00    	mov    %eax,0x468(%edi)
402d82:	8b 46 4c             	mov    0x4c(%esi),%eax
402d85:	89 87 6c 04 00 00    	mov    %eax,0x46c(%edi)
402d8b:	8b 46 50             	mov    0x50(%esi),%eax
402d8e:	89 87 74 04 00 00    	mov    %eax,0x474(%edi)
402d94:	74 09                	je     0x402d9f
402d96:	8b 46 54             	mov    0x54(%esi),%eax
402d99:	89 87 fc 00 00 00    	mov    %eax,0xfc(%edi)
402d9f:	8b 06                	mov    (%esi),%eax
402da1:	51                   	push   %ecx
402da2:	8b ce                	mov    %esi,%ecx
402da4:	89 87 f4 00 00 00    	mov    %eax,0xf4(%edi)
402daa:	e8 74 fc ff ff       	call   0x402a23
402daf:	5f                   	pop    %edi
402db0:	5e                   	pop    %esi
402db1:	5d                   	pop    %ebp
402db2:	c2 04 00             	ret    $0x4
402db5:	55                   	push   %ebp
402db6:	8b ec                	mov    %esp,%ebp
402db8:	83 ec 18             	sub    $0x18,%esp
402dbb:	53                   	push   %ebx
402dbc:	56                   	push   %esi
402dbd:	57                   	push   %edi
402dbe:	8b d9                	mov    %ecx,%ebx
402dc0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402dc3:	68 00 dc 49 00       	push   $0x49dc00
402dc8:	e8 ec 9f 00 00       	call   0x40cdb9
402dcd:	8b 75 08             	mov    0x8(%ebp),%esi
402dd0:	6a 04                	push   $0x4
402dd2:	8b 46 04             	mov    0x4(%esi),%eax
402dd5:	8b 38                	mov    (%eax),%edi
402dd7:	8b cf                	mov    %edi,%ecx
402dd9:	e8 06 a8 00 00       	call   0x40d5e4
402dde:	84 c0                	test   %al,%al
402de0:	0f 84 9f 31 07 00    	je     0x475f85
402de6:	6a 38                	push   $0x38
402de8:	e8 fd c6 01 00       	call   0x41f4ea
402ded:	59                   	pop    %ecx
402dee:	85 c0                	test   %eax,%eax
402df0:	0f 84 c3 00 00 00    	je     0x402eb9
402df6:	8b c8                	mov    %eax,%ecx
402df8:	e8 bd 1a 00 00       	call   0x4048ba
402dfd:	8b f8                	mov    %eax,%edi
402dff:	8b 46 04             	mov    0x4(%esi),%eax
402e02:	8b 30                	mov    (%eax),%esi
402e04:	8b ce                	mov    %esi,%ecx
402e06:	e8 61 65 00 00       	call   0x40936c
402e0b:	68 00 20 00 00       	push   $0x2000
402e10:	ff 76 08             	push   0x8(%esi)
402e13:	8b cf                	mov    %edi,%ecx
402e15:	e8 36 17 00 00       	call   0x404550
402e1a:	84 c0                	test   %al,%al
402e1c:	0f 84 3f 31 07 00    	je     0x475f61
402e22:	33 f6                	xor    %esi,%esi
402e24:	8b 45 08             	mov    0x8(%ebp),%eax
402e27:	83 78 08 02          	cmpl   $0x2,0x8(%eax)
402e2b:	0f 83 7d 31 07 00    	jae    0x475fae
402e31:	8b cf                	mov    %edi,%ecx
402e33:	e8 db fb ff ff       	call   0x402a13
402e38:	f6 47 28 10          	testb  $0x10,0x28(%edi)
402e3c:	89 45 fc             	mov    %eax,-0x4(%ebp)
402e3f:	0f 85 8f 31 07 00    	jne    0x475fd4
402e45:	8d 4d e8             	lea    -0x18(%ebp),%ecx
402e48:	e8 aa a9 00 00       	call   0x40d7f7
402e4d:	8d 45 fc             	lea    -0x4(%ebp),%eax
402e50:	50                   	push   %eax
402e51:	8d 45 e8             	lea    -0x18(%ebp),%eax
402e54:	50                   	push   %eax
402e55:	8b cf                	mov    %edi,%ecx
402e57:	e8 d0 b6 01 00       	call   0x41e52c
402e5c:	84 c0                	test   %al,%al
402e5e:	0f 84 dd 31 07 00    	je     0x476041
402e64:	8b 4d 0c             	mov    0xc(%ebp),%ecx
402e67:	8d 45 e8             	lea    -0x18(%ebp),%eax
402e6a:	50                   	push   %eax
402e6b:	e8 f8 3c 00 00       	call   0x406b68
402e70:	8b 03                	mov    (%ebx),%eax
402e72:	56                   	push   %esi
402e73:	8b 48 04             	mov    0x4(%eax),%ecx
402e76:	ff 75 fc             	push   -0x4(%ebp)
402e79:	03 cb                	add    %ebx,%ecx
402e7b:	e8 a1 04 00 00       	call   0x403321
402e80:	8d 4d e8             	lea    -0x18(%ebp),%ecx
402e83:	e8 af 9c 00 00       	call   0x40cb37
402e88:	8b 45 08             	mov    0x8(%ebp),%eax
402e8b:	6a 04                	push   $0x4
402e8d:	8b 48 04             	mov    0x4(%eax),%ecx
402e90:	8b 09                	mov    (%ecx),%ecx
402e92:	e8 4d a7 00 00       	call   0x40d5e4
402e97:	84 c0                	test   %al,%al
402e99:	74 15                	je     0x402eb0
402e9b:	8b cf                	mov    %edi,%ecx
402e9d:	e8 65 1a 00 00       	call   0x404907
402ea2:	51                   	push   %ecx
402ea3:	8b cf                	mov    %edi,%ecx
402ea5:	89 77 2c             	mov    %esi,0x2c(%edi)
402ea8:	89 77 30             	mov    %esi,0x30(%edi)
402eab:	e8 8b 16 00 00       	call   0x40453b
402eb0:	5f                   	pop    %edi
402eb1:	5e                   	pop    %esi
402eb2:	33 c0                	xor    %eax,%eax
402eb4:	5b                   	pop    %ebx
402eb5:	c9                   	leave
402eb6:	c2 08 00             	ret    $0x8
402eb9:	33 ff                	xor    %edi,%edi
402ebb:	e9 3f ff ff ff       	jmp    0x402dff
402ec0:	55                   	push   %ebp
402ec1:	8b ec                	mov    %esp,%ebp
402ec3:	83 e4 f8             	and    $0xfffffff8,%esp
402ec6:	83 ec 3c             	sub    $0x3c,%esp
402ec9:	53                   	push   %ebx
402eca:	56                   	push   %esi
402ecb:	57                   	push   %edi
402ecc:	8b f9                	mov    %ecx,%edi
402ece:	8b 4d 10             	mov    0x10(%ebp),%ecx
402ed1:	e8 35 05 00 00       	call   0x40340b
402ed6:	8d 8f ec 00 00 00    	lea    0xec(%edi),%ecx
402edc:	e8 2a 05 00 00       	call   0x40340b
402ee1:	8a 45 20             	mov    0x20(%ebp),%al
402ee4:	ff 75 08             	push   0x8(%ebp)
402ee7:	88 47 04             	mov    %al,0x4(%edi)
402eea:	8a 45 1c             	mov    0x1c(%ebp),%al
402eed:	8d 77 14             	lea    0x14(%edi),%esi
402ef0:	8b ce                	mov    %esi,%ecx
402ef2:	88 47 05             	mov    %al,0x5(%edi)
402ef5:	e8 f3 3f 00 00       	call   0x406eed
402efa:	ff 75 0c             	push   0xc(%ebp)
402efd:	8d 4f 24             	lea    0x24(%edi),%ecx
402f00:	e8 e8 3f 00 00       	call   0x406eed
402f05:	8d 8f bc 00 00 00    	lea    0xbc(%edi),%ecx
402f0b:	68 00 dc 49 00       	push   $0x49dc00
402f10:	e8 4e 3b 00 00       	call   0x406a63
402f15:	8b 45 14             	mov    0x14(%ebp),%eax
402f18:	33 db                	xor    %ebx,%ebx
402f1a:	8d 4c 24 18          	lea    0x18(%esp),%ecx
402f1e:	c7 87 cc 00 00 00 01 	movl   $0x1,0xcc(%edi)
402f25:	00 00 00
402f28:	89 47 10             	mov    %eax,0x10(%edi)
402f2b:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
402f2f:	89 5f 08             	mov    %ebx,0x8(%edi)
402f32:	89 9f d0 00 00 00    	mov    %ebx,0xd0(%edi)
402f38:	89 9f e4 00 00 00    	mov    %ebx,0xe4(%edi)
402f3e:	e8 b4 a8 00 00       	call   0x40d7f7
402f43:	8d 4c 24 28          	lea    0x28(%esp),%ecx
402f47:	e8 ab a8 00 00       	call   0x40d7f7
402f4c:	8d 4c 24 38          	lea    0x38(%esp),%ecx
402f50:	e8 a2 a8 00 00       	call   0x40d7f7
402f55:	39 5f 10             	cmp    %ebx,0x10(%edi)
402f58:	0f 8c da f0 06 00    	jl     0x472038
402f5e:	83 7f 10 04          	cmpl   $0x4,0x10(%edi)
402f62:	0f 84 e4 f0 06 00    	je     0x47204c
402f68:	39 5f 18             	cmp    %ebx,0x18(%edi)
402f6b:	0f 85 ed f0 06 00    	jne    0x47205e
402f71:	39 5f 28             	cmp    %ebx,0x28(%edi)
402f74:	0f 85 e4 f0 06 00    	jne    0x47205e
402f7a:	ff 15 1c d7 48 00    	call   *0x48d71c
402f80:	50                   	push   %eax
402f81:	8b cf                	mov    %edi,%ecx
402f83:	e8 3e 00 00 00       	call   0x402fc6
402f88:	8b 07                	mov    (%edi),%eax
402f8a:	8b 00                	mov    (%eax),%eax
402f8c:	89 44 24 10          	mov    %eax,0x10(%esp)
402f90:	8d 44 24 10          	lea    0x10(%esp),%eax
402f94:	8b 4d 10             	mov    0x10(%ebp),%ecx
402f97:	50                   	push   %eax
402f98:	e8 09 f9 ff ff       	call   0x4028a6
402f9d:	33 db                	xor    %ebx,%ebx
402f9f:	43                   	inc    %ebx
402fa0:	8d 4c 24 38          	lea    0x38(%esp),%ecx
402fa4:	e8 8e 9b 00 00       	call   0x40cb37
402fa9:	8d 4c 24 28          	lea    0x28(%esp),%ecx
402fad:	e8 85 9b 00 00       	call   0x40cb37
402fb2:	8d 4c 24 18          	lea    0x18(%esp),%ecx
402fb6:	e8 7c 9b 00 00       	call   0x40cb37
402fbb:	5f                   	pop    %edi
402fbc:	5e                   	pop    %esi
402fbd:	8b c3                	mov    %ebx,%eax
402fbf:	5b                   	pop    %ebx
402fc0:	8b e5                	mov    %ebp,%esp
402fc2:	5d                   	pop    %ebp
402fc3:	c2 1c 00             	ret    $0x1c
402fc6:	55                   	push   %ebp
402fc7:	8b ec                	mov    %esp,%ebp
402fc9:	56                   	push   %esi
402fca:	8b f1                	mov    %ecx,%esi
402fcc:	8b 0e                	mov    (%esi),%ecx
402fce:	85 c9                	test   %ecx,%ecx
402fd0:	74 06                	je     0x402fd8
402fd2:	51                   	push   %ecx
402fd3:	e8 ed 05 00 00       	call   0x4035c5
402fd8:	6a 04                	push   $0x4
402fda:	e8 0b c5 01 00       	call   0x41f4ea
402fdf:	59                   	pop    %ecx
402fe0:	85 c0                	test   %eax,%eax
402fe2:	74 0e                	je     0x402ff2
402fe4:	8b 4d 08             	mov    0x8(%ebp),%ecx
402fe7:	89 08                	mov    %ecx,(%eax)
402fe9:	89 06                	mov    %eax,(%esi)
402feb:	b0 01                	mov    $0x1,%al
402fed:	5e                   	pop    %esi
402fee:	5d                   	pop    %ebp
402fef:	c2 04 00             	ret    $0x4
402ff2:	33 c0                	xor    %eax,%eax
402ff4:	eb f3                	jmp    0x402fe9
402ff6:	55                   	push   %ebp
402ff7:	8b ec                	mov    %esp,%ebp
402ff9:	51                   	push   %ecx
402ffa:	51                   	push   %ecx
402ffb:	56                   	push   %esi
402ffc:	8b f1                	mov    %ecx,%esi
402ffe:	e8 1a 05 00 00       	call   0x40351d
403003:	8b b6 88 04 00 00    	mov    0x488(%esi),%esi
403009:	89 75 fc             	mov    %esi,-0x4(%ebp)
40300c:	51                   	push   %ecx
40300d:	8b c4                	mov    %esp,%eax
40300f:	8d 4d fc             	lea    -0x4(%ebp),%ecx
403012:	83 20 00             	andl   $0x0,(%eax)
403015:	e8 fc f8 ff ff       	call   0x402916
40301a:	84 c0                	test   %al,%al
40301c:	0f 85 c5 2d 07 00    	jne    0x475de7
403022:	5e                   	pop    %esi
403023:	c9                   	leave
403024:	c3                   	ret
403025:	53                   	push   %ebx
403026:	56                   	push   %esi
403027:	8b f1                	mov    %ecx,%esi
403029:	57                   	push   %edi
40302a:	8d be 60 01 00 00    	lea    0x160(%esi),%edi
403030:	33 db                	xor    %ebx,%ebx
403032:	eb 07                	jmp    0x40303b
403034:	8b cf                	mov    %edi,%ecx
403036:	e8 e7 ad 00 00       	call   0x40de22
40303b:	39 1f                	cmp    %ebx,(%edi)
40303d:	75 f5                	jne    0x403034
40303f:	8d 8e 78 01 00 00    	lea    0x178(%esi),%ecx
403045:	e8 34 04 00 00       	call   0x40347e
40304a:	8d be 6c 01 00 00    	lea    0x16c(%esi),%edi
403050:	39 1f                	cmp    %ebx,(%edi)
403052:	75 0c                	jne    0x403060
403054:	39 9e 88 01 00 00    	cmp    %ebx,0x188(%esi)
40305a:	75 0d                	jne    0x403069
40305c:	5f                   	pop    %edi
40305d:	5e                   	pop    %esi
40305e:	5b                   	pop    %ebx
40305f:	c3                   	ret
403060:	8b cf                	mov    %edi,%ecx
403062:	e8 79 9b 05 00       	call   0x45cbe0
403067:	eb e7                	jmp    0x403050
403069:	8d 8e 88 01 00 00    	lea    0x188(%esi),%ecx
40306f:	e8 30 d1 03 00       	call   0x4401a4
403074:	eb de                	jmp    0x403054
403076:	56                   	push   %esi
403077:	8d b1 b4 04 00 00    	lea    0x4b4(%ecx),%esi
40307d:	8b ce                	mov    %esi,%ecx
40307f:	e8 0f 00 00 00       	call   0x403093
403084:	c7 06 2c dc 49 00    	movl   $0x49dc2c,(%esi)
40308a:	8d 4e 04             	lea    0x4(%esi),%ecx
40308d:	5e                   	pop    %esi
40308e:	e9 5d 05 00 00       	jmp    0x4035f0
403093:	55                   	push   %ebp
403094:	8b ec                	mov    %esp,%ebp
403096:	51                   	push   %ecx
403097:	53                   	push   %ebx
403098:	56                   	push   %esi
403099:	57                   	push   %edi
40309a:	8b f9                	mov    %ecx,%edi
40309c:	8d 8f 4c fb ff ff    	lea    -0x4b4(%edi),%ecx
4030a2:	8b 01                	mov    (%ecx),%eax
4030a4:	8b 40 04             	mov    0x4(%eax),%eax
4030a7:	c7 84 38 4c fb ff ff 	movl   $0x4b1858,-0x4b4(%eax,%edi,1)
4030ae:	58 18 4b 00
4030b2:	8b 01                	mov    (%ecx),%eax
4030b4:	8b 50 04             	mov    0x4(%eax),%edx
4030b7:	8d 82 4c fb ff ff    	lea    -0x4b4(%edx),%eax
4030bd:	89 84 3a 48 fb ff ff 	mov    %eax,-0x4b8(%edx,%edi,1)
4030c4:	8b 87 34 fc ff ff    	mov    -0x3cc(%edi),%eax
4030ca:	85 c0                	test   %eax,%eax
4030cc:	0f 85 a6 1f 07 00    	jne    0x475078
4030d2:	33 db                	xor    %ebx,%ebx
4030d4:	53                   	push   %ebx
4030d5:	53                   	push   %ebx
4030d6:	53                   	push   %ebx
4030d7:	68 0c ef 4a 00       	push   $0x4aef0c
4030dc:	ff 15 a8 d7 48 00    	call   *0x48d7a8
4030e2:	8b f3                	mov    %ebx,%esi
4030e4:	39 9f 18 fd ff ff    	cmp    %ebx,-0x2e8(%edi)
4030ea:	0f 87 a2 01 00 00    	ja     0x403292