40ed02:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ed05:	85 c9                	test   %ecx,%ecx
40ed07:	74 0a                	je     0x40ed13
40ed09:	8b 01                	mov    (%ecx),%eax
40ed0b:	51                   	push   %ecx
40ed0c:	ff 50 08             	call   *0x8(%eax)
40ed0f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ed13:	8b 45 08             	mov    0x8(%ebp),%eax
40ed16:	83 c3 10             	add    $0x10,%ebx
40ed19:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ed1c:	40                   	inc    %eax
40ed1d:	89 45 08             	mov    %eax,0x8(%ebp)
40ed20:	3b c1                	cmp    %ecx,%eax
40ed22:	0f 82 2f ff ff ff    	jb     0x40ec57
40ed28:	33 db                	xor    %ebx,%ebx
40ed2a:	8b 45 10             	mov    0x10(%ebp),%eax
40ed2d:	8b f3                	mov    %ebx,%esi
40ed2f:	89 08                	mov    %ecx,(%eax)
40ed31:	8b 45 0c             	mov    0xc(%ebp),%eax
40ed34:	89 38                	mov    %edi,(%eax)
40ed36:	8b fb                	mov    %ebx,%edi
40ed38:	8b 45 f8             	mov    -0x8(%ebp),%eax
40ed3b:	85 c0                	test   %eax,%eax
40ed3d:	74 07                	je     0x40ed46
40ed3f:	50                   	push   %eax
40ed40:	ff 15 20 b3 44 00    	call   *0x44b320
40ed46:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40ed49:	85 c9                	test   %ecx,%ecx
40ed4b:	74 06                	je     0x40ed53
40ed4d:	8b 01                	mov    (%ecx),%eax
40ed4f:	51                   	push   %ecx
40ed50:	ff 50 08             	call   *0x8(%eax)
40ed53:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ed56:	85 c9                	test   %ecx,%ecx
40ed58:	74 06                	je     0x40ed60
40ed5a:	8b 01                	mov    (%ecx),%eax
40ed5c:	51                   	push   %ecx
40ed5d:	ff 50 08             	call   *0x8(%eax)
40ed60:	85 ff                	test   %edi,%edi
40ed62:	74 06                	je     0x40ed6a
40ed64:	57                   	push   %edi
40ed65:	e8 2f 4c ff ff       	call   0x403999
40ed6a:	5f                   	pop    %edi
40ed6b:	8b c6                	mov    %esi,%eax
40ed6d:	5e                   	pop    %esi
40ed6e:	5b                   	pop    %ebx
40ed6f:	8b e5                	mov    %ebp,%esp
40ed71:	5d                   	pop    %ebp
40ed72:	c2 0c 00             	ret    $0xc
40ed75:	68 30 1a 45 00       	push   $0x451a30
40ed7a:	e9 68 fe ff ff       	jmp    0x40ebe7
40ed7f:	68 10 1a 45 00       	push   $0x451a10
40ed84:	e9 5e fe ff ff       	jmp    0x40ebe7
40ed89:	68 64 e2 44 00       	push   $0x44e264
40ed8e:	e9 54 fe ff ff       	jmp    0x40ebe7
40ed93:	68 f8 19 45 00       	push   $0x4519f8
40ed98:	e9 4a fe ff ff       	jmp    0x40ebe7
40ed9d:	68 d0 19 45 00       	push   $0x4519d0
40eda2:	e9 40 fe ff ff       	jmp    0x40ebe7
40eda7:	68 48 ca 44 00       	push   $0x44ca48
40edac:	e9 36 fe ff ff       	jmp    0x40ebe7
40edb1:	55                   	push   %ebp
40edb2:	8b ec                	mov    %esp,%ebp
40edb4:	51                   	push   %ecx
40edb5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40edb9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40edbc:	56                   	push   %esi
40edbd:	50                   	push   %eax
40edbe:	ff 75 10             	push   0x10(%ebp)
40edc1:	ff 75 0c             	push   0xc(%ebp)
40edc4:	e8 c5 85 ff ff       	call   0x40738e
40edc9:	8b f0                	mov    %eax,%esi
40edcb:	85 f6                	test   %esi,%esi
40edcd:	79 0a                	jns    0x40edd9
40edcf:	ff 75 10             	push   0x10(%ebp)
40edd2:	68 98 21 45 00       	push   $0x452198
40edd7:	eb 1c                	jmp    0x40edf5
40edd9:	ff 75 fc             	push   -0x4(%ebp)
40eddc:	ff 75 14             	push   0x14(%ebp)
40eddf:	ff 75 08             	push   0x8(%ebp)
40ede2:	e8 ab 25 03 00       	call   0x441392
40ede7:	8b f0                	mov    %eax,%esi
40ede9:	85 f6                	test   %esi,%esi
40edeb:	79 11                	jns    0x40edfe
40eded:	ff 75 14             	push   0x14(%ebp)
40edf0:	68 44 17 45 00       	push   $0x451744
40edf5:	56                   	push   %esi
40edf6:	e8 34 13 03 00       	call   0x44012f
40edfb:	83 c4 0c             	add    $0xc,%esp
40edfe:	ff 75 fc             	push   -0x4(%ebp)
40ee01:	e8 8d 39 ff ff       	call   0x402793
40ee06:	8b c6                	mov    %esi,%eax
40ee08:	5e                   	pop    %esi
40ee09:	8b e5                	mov    %ebp,%esp
40ee0b:	5d                   	pop    %ebp
40ee0c:	c2 10 00             	ret    $0x10
40ee0f:	55                   	push   %ebp
40ee10:	8b ec                	mov    %esp,%ebp
40ee12:	83 ec 10             	sub    $0x10,%esp
40ee15:	53                   	push   %ebx
40ee16:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40ee19:	33 d2                	xor    %edx,%edx
40ee1b:	56                   	push   %esi
40ee1c:	57                   	push   %edi
40ee1d:	8b f2                	mov    %edx,%esi
40ee1f:	89 55 f4             	mov    %edx,-0xc(%ebp)
40ee22:	8b fa                	mov    %edx,%edi
40ee24:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ee27:	89 55 f8             	mov    %edx,-0x8(%ebp)
40ee2a:	39 53 04             	cmp    %edx,0x4(%ebx)
40ee2d:	0f 86 bb 00 00 00    	jbe    0x40eeee
40ee33:	8b c2                	mov    %edx,%eax
40ee35:	89 55 0c             	mov    %edx,0xc(%ebp)
40ee38:	8b 0b                	mov    (%ebx),%ecx
40ee3a:	03 c8                	add    %eax,%ecx
40ee3c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ee3f:	52                   	push   %edx
40ee40:	50                   	push   %eax
40ee41:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ee44:	ff 71 08             	push   0x8(%ecx)
40ee47:	ff 75 08             	push   0x8(%ebp)
40ee4a:	e8 80 83 ff ff       	call   0x4071cf
40ee4f:	8b f0                	mov    %eax,%esi
40ee51:	85 f6                	test   %esi,%esi
40ee53:	78 62                	js     0x40eeb7
40ee55:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ee58:	50                   	push   %eax
40ee59:	68 ac 0f 45 00       	push   $0x450fac
40ee5e:	ff 75 f4             	push   -0xc(%ebp)
40ee61:	e8 13 3f ff ff       	call   0x402d79
40ee66:	8b f0                	mov    %eax,%esi
40ee68:	85 f6                	test   %esi,%esi
40ee6a:	78 44                	js     0x40eeb0
40ee6c:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ee6f:	50                   	push   %eax
40ee70:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ee73:	ff 30                	push   (%eax)
40ee75:	ff 75 fc             	push   -0x4(%ebp)
40ee78:	e8 fc 3e ff ff       	call   0x402d79
40ee7d:	8b f0                	mov    %eax,%esi
40ee7f:	85 f6                	test   %esi,%esi
40ee81:	78 26                	js     0x40eea9
40ee83:	ff 75 f8             	push   -0x8(%ebp)
40ee86:	e8 ad 51 03 00       	call   0x444038
40ee8b:	6a 00                	push   $0x0
40ee8d:	ff 75 fc             	push   -0x4(%ebp)
40ee90:	e8 d5 4c ff ff       	call   0x403b6a
40ee95:	8b 45 0c             	mov    0xc(%ebp),%eax
40ee98:	47                   	inc    %edi
40ee99:	83 c0 10             	add    $0x10,%eax
40ee9c:	6a 00                	push   $0x0
40ee9e:	89 45 0c             	mov    %eax,0xc(%ebp)
40eea1:	5a                   	pop    %edx
40eea2:	3b 7b 04             	cmp    0x4(%ebx),%edi
40eea5:	72 91                	jb     0x40ee38
40eea7:	eb 1b                	jmp    0x40eec4
40eea9:	68 80 1f 45 00       	push   $0x451f80
40eeae:	eb 0c                	jmp    0x40eebc
40eeb0:	68 58 1f 45 00       	push   $0x451f58
40eeb5:	eb 05                	jmp    0x40eebc
40eeb7:	68 34 1f 45 00       	push   $0x451f34
40eebc:	56                   	push   %esi
40eebd:	e8 6d 12 03 00       	call   0x44012f
40eec2:	59                   	pop    %ecx
40eec3:	59                   	pop    %ecx
40eec4:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40eec8:	74 08                	je     0x40eed2
40eeca:	ff 75 f8             	push   -0x8(%ebp)
40eecd:	e8 1d 66 03 00       	call   0x4454ef
40eed2:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40eed6:	74 08                	je     0x40eee0
40eed8:	ff 75 fc             	push   -0x4(%ebp)
40eedb:	e8 0f 66 03 00       	call   0x4454ef
40eee0:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40eee4:	74 08                	je     0x40eeee
40eee6:	ff 75 f4             	push   -0xc(%ebp)
40eee9:	e8 01 66 03 00       	call   0x4454ef
40eeee:	5f                   	pop    %edi
40eeef:	8b c6                	mov    %esi,%eax
40eef1:	5e                   	pop    %esi
40eef2:	5b                   	pop    %ebx
40eef3:	8b e5                	mov    %ebp,%esp
40eef5:	5d                   	pop    %ebp
40eef6:	c2 08 00             	ret    $0x8
40eef9:	55                   	push   %ebp
40eefa:	8b ec                	mov    %esp,%ebp
40eefc:	83 ec 0c             	sub    $0xc,%esp
40eeff:	53                   	push   %ebx
40ef00:	33 c0                	xor    %eax,%eax
40ef02:	33 db                	xor    %ebx,%ebx
40ef04:	56                   	push   %esi
40ef05:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ef08:	43                   	inc    %ebx
40ef09:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ef0c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40ef0f:	8d 45 f4             	lea    -0xc(%ebp),%eax
40ef12:	57                   	push   %edi
40ef13:	50                   	push   %eax
40ef14:	8b 45 08             	mov    0x8(%ebp),%eax
40ef17:	50                   	push   %eax
40ef18:	e8 b0 f8 ff ff       	call   0x40e7cd
40ef1d:	8b 7d f4             	mov    -0xc(%ebp),%edi
40ef20:	8b f0                	mov    %eax,%esi
40ef22:	85 f6                	test   %esi,%esi
40ef24:	79 12                	jns    0x40ef38
40ef26:	68 38 21 45 00       	push   $0x452138
40ef2b:	56                   	push   %esi
40ef2c:	e8 fe 11 03 00       	call   0x44012f
40ef31:	59                   	pop    %ecx
40ef32:	59                   	pop    %ecx
40ef33:	e9 8a 00 00 00       	jmp    0x40efc2
40ef38:	8b 75 08             	mov    0x8(%ebp),%esi
40ef3b:	8d 45 fc             	lea    -0x4(%ebp),%eax
40ef3e:	50                   	push   %eax
40ef3f:	53                   	push   %ebx
40ef40:	57                   	push   %edi
40ef41:	ff 76 4c             	push   0x4c(%esi)
40ef44:	e8 f6 1e 03 00       	call   0x440e3f
40ef49:	85 c0                	test   %eax,%eax
40ef4b:	78 44                	js     0x40ef91
40ef4d:	8d 45 f8             	lea    -0x8(%ebp),%eax
40ef50:	50                   	push   %eax
40ef51:	68 ac 20 45 00       	push   $0x4520ac
40ef56:	ff 75 fc             	push   -0x4(%ebp)
40ef59:	e8 10 20 03 00       	call   0x440f6e
40ef5e:	85 c0                	test   %eax,%eax
40ef60:	78 1c                	js     0x40ef7e
40ef62:	6a ff                	push   $0xffffffff
40ef64:	ff 76 64             	push   0x64(%esi)
40ef67:	6a ff                	push   $0xffffffff
40ef69:	ff 75 f8             	push   -0x8(%ebp)
40ef6c:	6a 00                	push   $0x0
40ef6e:	6a 7f                	push   $0x7f
40ef70:	ff 15 28 b1 44 00    	call   *0x44b128
40ef76:	33 c9                	xor    %ecx,%ecx
40ef78:	83 f8 02             	cmp    $0x2,%eax
40ef7b:	0f 45 d9             	cmovne %ecx,%ebx
40ef7e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40ef82:	74 0d                	je     0x40ef91
40ef84:	ff 75 fc             	push   -0x4(%ebp)
40ef87:	ff 15 00 b0 44 00    	call   *0x44b000
40ef8d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ef91:	33 f6                	xor    %esi,%esi
40ef93:	85 db                	test   %ebx,%ebx
40ef95:	74 2b                	je     0x40efc2
40ef97:	8b 45 08             	mov    0x8(%ebp),%eax
40ef9a:	56                   	push   %esi
40ef9b:	56                   	push   %esi
40ef9c:	57                   	push   %edi
40ef9d:	ff 70 4c             	push   0x4c(%eax)
40efa0:	e8 a4 1b 03 00       	call   0x440b49
40efa5:	8b f0                	mov    %eax,%esi
40efa7:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
40efad:	74 13                	je     0x40efc2
40efaf:	85 f6                	test   %esi,%esi
40efb1:	79 0f                	jns    0x40efc2
40efb3:	57                   	push   %edi
40efb4:	68 68 21 45 00       	push   $0x452168
40efb9:	56                   	push   %esi
40efba:	e8 70 11 03 00       	call   0x44012f
40efbf:	83 c4 0c             	add    $0xc,%esp
40efc2:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40efc6:	74 08                	je     0x40efd0
40efc8:	ff 75 f8             	push   -0x8(%ebp)
40efcb:	e8 1f 65 03 00       	call   0x4454ef
40efd0:	85 ff                	test   %edi,%edi
40efd2:	74 06                	je     0x40efda
40efd4:	57                   	push   %edi
40efd5:	e8 15 65 03 00       	call   0x4454ef
40efda:	5f                   	pop    %edi
40efdb:	8b c6                	mov    %esi,%eax
40efdd:	5e                   	pop    %esi
40efde:	5b                   	pop    %ebx
40efdf:	8b e5                	mov    %ebp,%esp
40efe1:	5d                   	pop    %ebp
40efe2:	c2 04 00             	ret    $0x4
40efe5:	55                   	push   %ebp
40efe6:	8b ec                	mov    %esp,%ebp
40efe8:	51                   	push   %ecx
40efe9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40efed:	33 c0                	xor    %eax,%eax
40efef:	56                   	push   %esi
40eff0:	57                   	push   %edi
40eff1:	8b 7d 08             	mov    0x8(%ebp),%edi
40eff4:	39 07                	cmp    %eax,(%edi)
40eff6:	ff 77 10             	push   0x10(%edi)
40eff9:	0f 95 c0             	setne  %al
40effc:	05 01 00 00 80       	add    $0x80000001,%eax
40f001:	68 78 0a 45 00       	push   $0x450a78
40f006:	89 47 4c             	mov    %eax,0x4c(%edi)
40f009:	8d 47 50             	lea    0x50(%edi),%eax
40f00c:	68 5c 1a 45 00       	push   $0x451a5c
40f011:	50                   	push   %eax
40f012:	e8 09 2f ff ff       	call   0x401f20
40f017:	8b f0                	mov    %eax,%esi
40f019:	83 c4 10             	add    $0x10,%esp
40f01c:	85 f6                	test   %esi,%esi
40f01e:	79 07                	jns    0x40f027
40f020:	68 68 1a 45 00       	push   $0x451a68
40f025:	eb 56                	jmp    0x40f07d
40f027:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f02a:	50                   	push   %eax
40f02b:	ff 77 10             	push   0x10(%edi)
40f02e:	ff 37                	push   (%edi)
40f030:	e8 54 b1 00 00       	call   0x41a189
40f035:	8b f0                	mov    %eax,%esi
40f037:	85 f6                	test   %esi,%esi
40f039:	79 07                	jns    0x40f042
40f03b:	68 98 1a 45 00       	push   $0x451a98
40f040:	eb 3b                	jmp    0x40f07d
40f042:	8d 47 54             	lea    0x54(%edi),%eax
40f045:	50                   	push   %eax
40f046:	ff 77 48             	push   0x48(%edi)
40f049:	ff 75 fc             	push   -0x4(%ebp)
40f04c:	e8 28 3d ff ff       	call   0x402d79
40f051:	8b f0                	mov    %eax,%esi
40f053:	85 f6                	test   %esi,%esi
40f055:	79 07                	jns    0x40f05e
40f057:	68 bc 1a 45 00       	push   $0x451abc
40f05c:	eb 1f                	jmp    0x40f07d
40f05e:	ff 75 fc             	push   -0x4(%ebp)
40f061:	8d 47 5c             	lea    0x5c(%edi),%eax
40f064:	68 e4 1a 45 00       	push   $0x451ae4
40f069:	50                   	push   %eax
40f06a:	e8 b1 2e ff ff       	call   0x401f20
40f06f:	8b f0                	mov    %eax,%esi
40f071:	83 c4 0c             	add    $0xc,%esp
40f074:	85 f6                	test   %esi,%esi
40f076:	79 0d                	jns    0x40f085
40f078:	68 00 1b 45 00       	push   $0x451b00
40f07d:	56                   	push   %esi
40f07e:	e8 ac 10 03 00       	call   0x44012f
40f083:	59                   	pop    %ecx
40f084:	59                   	pop    %ecx
40f085:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f089:	74 08                	je     0x40f093
40f08b:	ff 75 fc             	push   -0x4(%ebp)
40f08e:	e8 5c 64 03 00       	call   0x4454ef
40f093:	5f                   	pop    %edi
40f094:	8b c6                	mov    %esi,%eax
40f096:	5e                   	pop    %esi
40f097:	8b e5                	mov    %ebp,%esp
40f099:	5d                   	pop    %ebp
40f09a:	c2 04 00             	ret    $0x4
40f09d:	55                   	push   %ebp
40f09e:	8b ec                	mov    %esp,%ebp
40f0a0:	83 ec 10             	sub    $0x10,%esp
40f0a3:	53                   	push   %ebx
40f0a4:	56                   	push   %esi
40f0a5:	57                   	push   %edi