40295a:	74 0b                	je     0x402967
40295c:	8b cf                	mov    %edi,%ecx
40295e:	e8 68 01 00 00       	call   0x402acb
402963:	33 f6                	xor    %esi,%esi
402965:	eb 08                	jmp    0x40296f
402967:	ff 15 0c 22 41 00    	call   *0x41220c
40296d:	8b f0                	mov    %eax,%esi
40296f:	8b 53 04             	mov    0x4(%ebx),%edx
402972:	51                   	push   %ecx
402973:	8b cc                	mov    %esp,%ecx
402975:	e8 9d c2 00 00       	call   0x40ec17
40297a:	56                   	push   %esi
40297b:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40297e:	e8 23 16 00 00       	call   0x403fa6
402983:	50                   	push   %eax
402984:	8b cf                	mov    %edi,%ecx
402986:	e8 c8 21 00 00       	call   0x404b53
40298b:	8d 4d f4             	lea    -0xc(%ebp),%ecx
40298e:	e8 fc 15 00 00       	call   0x403f8f
402993:	5f                   	pop    %edi
402994:	5e                   	pop    %esi
402995:	5b                   	pop    %ebx
402996:	c9                   	leave
402997:	c3                   	ret
402998:	55                   	push   %ebp
402999:	8b ec                	mov    %esp,%ebp
40299b:	83 ec 14             	sub    $0x14,%esp
40299e:	53                   	push   %ebx
40299f:	56                   	push   %esi
4029a0:	57                   	push   %edi
4029a1:	33 ff                	xor    %edi,%edi
4029a3:	8b f2                	mov    %edx,%esi
4029a5:	57                   	push   %edi
4029a6:	8b d9                	mov    %ecx,%ebx
4029a8:	ff 15 10 22 41 00    	call   *0x412210
4029ae:	51                   	push   %ecx
4029af:	8b cc                	mov    %esp,%ecx
4029b1:	83 c6 04             	add    $0x4,%esi
4029b4:	56                   	push   %esi
4029b5:	e8 a0 0a 00 00       	call   0x40345a
4029ba:	e8 ea b4 00 00       	call   0x40dea9
4029bf:	59                   	pop    %ecx
4029c0:	85 c0                	test   %eax,%eax
4029c2:	74 2f                	je     0x4029f3
4029c4:	56                   	push   %esi
4029c5:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4029c8:	e8 8d 0a 00 00       	call   0x40345a
4029cd:	51                   	push   %ecx
4029ce:	8d 45 fc             	lea    -0x4(%ebp),%eax
4029d1:	8b cc                	mov    %esp,%ecx
4029d3:	50                   	push   %eax
4029d4:	e8 81 0a 00 00       	call   0x40345a
4029d9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4029dc:	e8 9e 0d 00 00       	call   0x40377f
4029e1:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4029e4:	e8 44 30 00 00       	call   0x405a2d
4029e9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4029ec:	e8 77 0d 00 00       	call   0x403768
4029f1:	eb 08                	jmp    0x4029fb
4029f3:	ff 15 0c 22 41 00    	call   *0x41220c
4029f9:	8b f8                	mov    %eax,%edi
4029fb:	51                   	push   %ecx
4029fc:	8b cc                	mov    %esp,%ecx
4029fe:	56                   	push   %esi
4029ff:	e8 56 0a 00 00       	call   0x40345a
402a04:	57                   	push   %edi
402a05:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402a08:	e8 1e 12 00 00       	call   0x403c2b
402a0d:	50                   	push   %eax
402a0e:	8b cb                	mov    %ebx,%ecx
402a10:	e8 3e 21 00 00       	call   0x404b53
402a15:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402a18:	e8 f7 11 00 00       	call   0x403c14
402a1d:	5f                   	pop    %edi
402a1e:	5e                   	pop    %esi
402a1f:	5b                   	pop    %ebx
402a20:	c9                   	leave
402a21:	c3                   	ret
402a22:	52                   	push   %edx
402a23:	51                   	push   %ecx
402a24:	e8 24 e8 ff ff       	call   0x40124d
402a29:	8b c8                	mov    %eax,%ecx
402a2b:	e8 75 48 00 00       	call   0x4072a5
402a30:	c3                   	ret
402a31:	55                   	push   %ebp
402a32:	8b ec                	mov    %esp,%ebp
402a34:	83 ec 24             	sub    $0x24,%esp
402a37:	56                   	push   %esi
402a38:	51                   	push   %ecx
402a39:	8b f1                	mov    %ecx,%esi
402a3b:	8d 42 04             	lea    0x4(%edx),%eax
402a3e:	8b cc                	mov    %esp,%ecx
402a40:	50                   	push   %eax
402a41:	e8 14 0a 00 00       	call   0x40345a
402a46:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402a49:	e8 77 b4 00 00       	call   0x40dec5
402a4e:	83 ec 0c             	sub    $0xc,%esp
402a51:	8d 45 f0             	lea    -0x10(%ebp),%eax
402a54:	8b cc                	mov    %esp,%ecx
402a56:	50                   	push   %eax
402a57:	e8 a5 e8 ff ff       	call   0x401301
402a5c:	8d 4d dc             	lea    -0x24(%ebp),%ecx
402a5f:	e8 4c 16 00 00       	call   0x4040b0
402a64:	50                   	push   %eax
402a65:	8b ce                	mov    %esi,%ecx
402a67:	e8 e7 20 00 00       	call   0x404b53
402a6c:	8d 4d dc             	lea    -0x24(%ebp),%ecx
402a6f:	e8 19 16 00 00       	call   0x40408d
402a74:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402a77:	85 c9                	test   %ecx,%ecx
402a79:	74 06                	je     0x402a81
402a7b:	51                   	push   %ecx
402a7c:	e8 f4 ef ff ff       	call   0x401a75
402a81:	5e                   	pop    %esi
402a82:	c9                   	leave
402a83:	c3                   	ret
402a84:	55                   	push   %ebp
402a85:	8b ec                	mov    %esp,%ebp
402a87:	83 ec 24             	sub    $0x24,%esp
402a8a:	56                   	push   %esi
402a8b:	8b f1                	mov    %ecx,%esi
402a8d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402a90:	e8 34 b5 00 00       	call   0x40dfc9
402a95:	83 ec 10             	sub    $0x10,%esp
402a98:	8d 45 f0             	lea    -0x10(%ebp),%eax
402a9b:	8b cc                	mov    %esp,%ecx
402a9d:	50                   	push   %eax
402a9e:	e8 a5 e8 ff ff       	call   0x401348
402aa3:	8d 4d dc             	lea    -0x24(%ebp),%ecx
402aa6:	e8 f3 16 00 00       	call   0x40419e
402aab:	50                   	push   %eax
402aac:	8b ce                	mov    %esi,%ecx
402aae:	e8 a0 20 00 00       	call   0x404b53
402ab3:	8d 4d dc             	lea    -0x24(%ebp),%ecx
402ab6:	e8 c0 16 00 00       	call   0x40417b
402abb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402abe:	85 c9                	test   %ecx,%ecx
402ac0:	74 06                	je     0x402ac8
402ac2:	51                   	push   %ecx
402ac3:	e8 d8 ef ff ff       	call   0x401aa0
402ac8:	5e                   	pop    %esi
402ac9:	c9                   	leave
402aca:	c3                   	ret
402acb:	55                   	push   %ebp
402acc:	8b ec                	mov    %esp,%ebp
402ace:	83 ec 28             	sub    $0x28,%esp
402ad1:	56                   	push   %esi
402ad2:	8b f1                	mov    %ecx,%esi
402ad4:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402ad7:	57                   	push   %edi
402ad8:	e8 e5 c1 00 00       	call   0x40ecc2
402add:	83 ec 10             	sub    $0x10,%esp
402ae0:	8d 45 f0             	lea    -0x10(%ebp),%eax
402ae3:	8b cc                	mov    %esp,%ecx
402ae5:	50                   	push   %eax
402ae6:	e8 cf e7 ff ff       	call   0x4012ba
402aeb:	8d 4d dc             	lea    -0x24(%ebp),%ecx
402aee:	e8 cd 17 00 00       	call   0x4042c0
402af3:	50                   	push   %eax
402af4:	8b ce                	mov    %esi,%ecx
402af6:	e8 58 20 00 00       	call   0x404b53
402afb:	8d 4d dc             	lea    -0x24(%ebp),%ecx
402afe:	e8 81 17 00 00       	call   0x404284
402b03:	8b 45 f0             	mov    -0x10(%ebp),%eax
402b06:	85 c0                	test   %eax,%eax
402b08:	74 1b                	je     0x402b25
402b0a:	8b 70 fc             	mov    -0x4(%eax),%esi
402b0d:	6b fe 0c             	imul   $0xc,%esi,%edi
402b10:	03 f8                	add    %eax,%edi
402b12:	85 f6                	test   %esi,%esi
402b14:	74 0f                	je     0x402b25
402b16:	83 ef 0c             	sub    $0xc,%edi
402b19:	8b cf                	mov    %edi,%ecx
402b1b:	e8 96 e8 ff ff       	call   0x4013b6
402b20:	83 ee 01             	sub    $0x1,%esi
402b23:	75 f1                	jne    0x402b16
402b25:	5f                   	pop    %edi
402b26:	5e                   	pop    %esi
402b27:	c9                   	leave
402b28:	c3                   	ret
402b29:	55                   	push   %ebp
402b2a:	8b ec                	mov    %esp,%ebp
402b2c:	81 ec 60 03 00 00    	sub    $0x360,%esp
402b32:	53                   	push   %ebx
402b33:	56                   	push   %esi
402b34:	8b d9                	mov    %ecx,%ebx
402b36:	8d 4d ec             	lea    -0x14(%ebp),%ecx
402b39:	57                   	push   %edi
402b3a:	8b fa                	mov    %edx,%edi
402b3c:	e8 99 ad 00 00       	call   0x40d8da
402b41:	8d 4d f0             	lea    -0x10(%ebp),%ecx
402b44:	e8 60 ac 00 00       	call   0x40d7a9
402b49:	68 04 01 00 00       	push   $0x104
402b4e:	8d 85 ac fe ff ff    	lea    -0x154(%ebp),%eax
402b54:	33 f6                	xor    %esi,%esi
402b56:	50                   	push   %eax
402b57:	56                   	push   %esi
402b58:	ff 15 14 22 41 00    	call   *0x412214
402b5e:	8d 55 f4             	lea    -0xc(%ebp),%edx
402b61:	89 75 f4             	mov    %esi,-0xc(%ebp)
402b64:	8d 8d ac fe ff ff    	lea    -0x154(%ebp),%ecx
402b6a:	e8 02 d1 00 00       	call   0x40fc71
402b6f:	8b 55 f4             	mov    -0xc(%ebp),%edx
402b72:	8d 4d f8             	lea    -0x8(%ebp),%ecx
402b75:	51                   	push   %ecx
402b76:	51                   	push   %ecx
402b77:	8b c8                	mov    %eax,%ecx
402b79:	89 75 f8             	mov    %esi,-0x8(%ebp)
402b7c:	e8 72 ce 00 00       	call   0x40f9f3
402b81:	8b 75 ec             	mov    -0x14(%ebp),%esi
402b84:	83 c4 04             	add    $0x4,%esp
402b87:	8b cc                	mov    %esp,%ecx
402b89:	ff 75 f0             	push   -0x10(%ebp)
402b8c:	e8 81 08 00 00       	call   0x403412
402b91:	51                   	push   %ecx
402b92:	8b cc                	mov    %esp,%ecx
402b94:	56                   	push   %esi
402b95:	e8 78 08 00 00       	call   0x403412
402b9a:	e8 1b ae 00 00       	call   0x40d9ba
402b9f:	50                   	push   %eax
402ba0:	ff 75 f8             	push   -0x8(%ebp)
402ba3:	51                   	push   %ecx
402ba4:	8b cc                	mov    %esp,%ecx
402ba6:	68 08 26 41 00       	push   $0x412608
402bab:	e8 62 08 00 00       	call   0x403412
402bb0:	51                   	push   %ecx
402bb1:	8b cc                	mov    %esp,%ecx
402bb3:	e8 61 b0 00 00       	call   0x40dc19
402bb8:	e8 36 b0 00 00       	call   0x40dbf3
402bbd:	50                   	push   %eax
402bbe:	e8 d4 af 00 00       	call   0x40db97
402bc3:	50                   	push   %eax
402bc4:	e8 14 ae 00 00       	call   0x40d9dd
402bc9:	50                   	push   %eax
402bca:	68 e6 00 00 00       	push   $0xe6
402bcf:	51                   	push   %ecx
402bd0:	51                   	push   %ecx
402bd1:	8b cc                	mov    %esp,%ecx
402bd3:	e8 7b b0 00 00       	call   0x40dc53
402bd8:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402bdb:	e8 c1 12 00 00       	call   0x403ea1
402be0:	50                   	push   %eax
402be1:	8b cb                	mov    %ebx,%ecx
402be3:	e8 6b 1f 00 00       	call   0x404b53
402be8:	8d 4d b8             	lea    -0x48(%ebp),%ecx
402beb:	e8 6f 12 00 00       	call   0x403e5f
402bf0:	33 f6                	xor    %esi,%esi
402bf2:	39 77 34             	cmp    %esi,0x34(%edi)
402bf5:	74 61                	je     0x402c58
402bf7:	68 08 02 00 00       	push   $0x208
402bfc:	8d 85 a4 fc ff ff    	lea    -0x35c(%ebp),%eax
402c02:	56                   	push   %esi
402c03:	50                   	push   %eax
402c04:	e8 49 e4 ff ff       	call   0x401052
402c09:	83 c4 0c             	add    $0xc,%esp
402c0c:	8d 85 a4 fc ff ff    	lea    -0x35c(%ebp),%eax
402c12:	50                   	push   %eax
402c13:	56                   	push   %esi
402c14:	56                   	push   %esi
402c15:	6a 1c                	push   $0x1c
402c17:	56                   	push   %esi
402c18:	ff 15 5c 22 41 00    	call   *0x41225c
402c1e:	68 0c 26 41 00       	push   $0x41260c
402c23:	8d 85 a4 fc ff ff    	lea    -0x35c(%ebp),%eax
402c29:	50                   	push   %eax
402c2a:	ff 15 04 22 41 00    	call   *0x412204
402c30:	56                   	push   %esi
402c31:	8d 85 a4 fc ff ff    	lea    -0x35c(%ebp),%eax
402c37:	50                   	push   %eax
402c38:	ff 15 18 22 41 00    	call   *0x412218
402c3e:	6a 01                	push   $0x1
402c40:	53                   	push   %ebx
402c41:	e8 70 59 00 00       	call   0x4085b6
402c46:	8d 45 f8             	lea    -0x8(%ebp),%eax
402c49:	c7 45 f8 70 49 41 00 	movl   $0x414970,-0x8(%ebp)
402c50:	50                   	push   %eax
402c51:	8b cb                	mov    %ebx,%ecx
402c53:	e8 fb 1e 00 00       	call   0x404b53
402c58:	8b 4d f0             	mov    -0x10(%ebp),%ecx
402c5b:	e8 cd 2d 00 00       	call   0x405a2d
402c60:	8b 4d ec             	mov    -0x14(%ebp),%ecx
402c63:	e8 c5 2d 00 00       	call   0x405a2d
402c68:	5f                   	pop    %edi
402c69:	5e                   	pop    %esi
402c6a:	5b                   	pop    %ebx
402c6b:	c9                   	leave
402c6c:	c3                   	ret
402c6d:	8b 01                	mov    (%ecx),%eax
402c6f:	8b 40 04             	mov    0x4(%eax),%eax
402c72:	c2 04 00             	ret    $0x4
402c75:	55                   	push   %ebp
402c76:	8b ec                	mov    %esp,%ebp
402c78:	8b 09                	mov    (%ecx),%ecx
402c7a:	8b 45 08             	mov    0x8(%ebp),%eax
402c7d:	0f be 04 01          	movsbl (%ecx,%eax,1),%eax
402c81:	5d                   	pop    %ebp
402c82:	c2 04 00             	ret    $0x4
402c85:	55                   	push   %ebp
402c86:	8b ec                	mov    %esp,%ebp
402c88:	56                   	push   %esi
402c89:	8b f1                	mov    %ecx,%esi
402c8b:	8b 4d 10             	mov    0x10(%ebp),%ecx
402c8e:	57                   	push   %edi
402c8f:	e8 f3 2d 00 00       	call   0x405a87
402c94:	8b 16                	mov    (%esi),%edx
402c96:	8b f8                	mov    %eax,%edi
402c98:	ff 75 10             	push   0x10(%ebp)
402c9b:	03 55 0c             	add    0xc(%ebp),%edx
402c9e:	8b cf                	mov    %edi,%ecx
402ca0:	e8 f3 2d 00 00       	call   0x405a98
402ca5:	8b 75 08             	mov    0x8(%ebp),%esi
402ca8:	83 c4 04             	add    $0x4,%esp
402cab:	8b ce                	mov    %esi,%ecx
402cad:	ff 75 10             	push   0x10(%ebp)
402cb0:	83 26 00             	andl   $0x0,(%esi)
402cb3:	83 66 04 00          	andl   $0x0,0x4(%esi)
402cb7:	57                   	push   %edi
402cb8:	e8 04 01 00 00       	call   0x402dc1
402cbd:	8b cf                	mov    %edi,%ecx
402cbf:	e8 b2 2d 00 00       	call   0x405a76
402cc4:	5f                   	pop    %edi
402cc5:	8b c6                	mov    %esi,%eax
402cc7:	5e                   	pop    %esi
402cc8:	5d                   	pop    %ebp
402cc9:	c2 0c 00             	ret    $0xc
402ccc:	55                   	push   %ebp
402ccd:	8b ec                	mov    %esp,%ebp
402ccf:	56                   	push   %esi
402cd0:	8b f1                	mov    %ecx,%esi
402cd2:	57                   	push   %edi
402cd3:	8b 7d 08             	mov    0x8(%ebp),%edi
402cd6:	83 26 00             	andl   $0x0,(%esi)
402cd9:	83 66 04 00          	andl   $0x0,0x4(%esi)
402cdd:	8b 4f 04             	mov    0x4(%edi),%ecx
402ce0:	85 c9                	test   %ecx,%ecx
402ce2:	74 1c                	je     0x402d00
402ce4:	e8 9e 2d 00 00       	call   0x405a87
402ce9:	89 06                	mov    %eax,(%esi)
402ceb:	8b c8                	mov    %eax,%ecx
402ced:	ff 77 04             	push   0x4(%edi)
402cf0:	8b 17                	mov    (%edi),%edx
402cf2:	e8 a1 2d 00 00       	call   0x405a98
402cf7:	8b 47 04             	mov    0x4(%edi),%eax
402cfa:	83 c4 04             	add    $0x4,%esp
402cfd:	89 46 04             	mov    %eax,0x4(%esi)
402d00:	5f                   	pop    %edi
402d01:	8b c6                	mov    %esi,%eax
402d03:	5e                   	pop    %esi
402d04:	5d                   	pop    %ebp
402d05:	c2 04 00             	ret    $0x4