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
40f0a6:	8b 7d 08             	mov    0x8(%ebp),%edi
40f0a9:	33 c0                	xor    %eax,%eax
40f0ab:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f0ae:	be d8 0c 45 00       	mov    $0x450cd8,%esi
40f0b3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f0b6:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f0b9:	ff 77 08             	push   0x8(%edi)
40f0bc:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f0bf:	e8 6c 4b 00 00       	call   0x413c30
40f0c4:	50                   	push   %eax
40f0c5:	ff 75 14             	push   0x14(%ebp)
40f0c8:	e8 63 4b 00 00       	call   0x413c30
40f0cd:	50                   	push   %eax
40f0ce:	ff 75 10             	push   0x10(%ebp)
40f0d1:	e8 81 51 00 00       	call   0x414257
40f0d6:	50                   	push   %eax
40f0d7:	ff 77 50             	push   0x50(%edi)
40f0da:	68 73 01 00 20       	push   $0x20000173
40f0df:	6a 02                	push   $0x2
40f0e1:	e8 29 64 ff ff       	call   0x40550f
40f0e6:	83 c4 18             	add    $0x18,%esp
40f0e9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f0ec:	50                   	push   %eax
40f0ed:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f0f0:	50                   	push   %eax
40f0f1:	e8 d7 48 03 00       	call   0x4439cd
40f0f6:	83 7d f4 05          	cmpl   $0x5,-0xc(%ebp)
40f0fa:	b8 78 0c 45 00       	mov    $0x450c78,%eax
40f0ff:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40f102:	0f 4d c6             	cmovge %esi,%eax
40f105:	89 45 08             	mov    %eax,0x8(%ebp)
40f108:	85 db                	test   %ebx,%ebx
40f10a:	74 41                	je     0x40f14d
40f10c:	ff 75 10             	push   0x10(%ebp)
40f10f:	68 64 16 45 00       	push   $0x451664
40f114:	53                   	push   %ebx
40f115:	e8 2a 22 03 00       	call   0x441344
40f11a:	8b f0                	mov    %eax,%esi
40f11c:	85 f6                	test   %esi,%esi
40f11e:	79 0a                	jns    0x40f12a
40f120:	68 a4 1b 45 00       	push   $0x451ba4
40f125:	e9 82 01 00 00       	jmp    0x40f2ac
40f12a:	83 7d 10 03          	cmpl   $0x3,0x10(%ebp)
40f12e:	75 1d                	jne    0x40f14d
40f130:	6a 01                	push   $0x1
40f132:	68 64 0d 45 00       	push   $0x450d64
40f137:	53                   	push   %ebx
40f138:	e8 07 22 03 00       	call   0x441344
40f13d:	8b f0                	mov    %eax,%esi
40f13f:	85 f6                	test   %esi,%esi
40f141:	79 10                	jns    0x40f153
40f143:	68 c4 1b 45 00       	push   $0x451bc4
40f148:	e9 5f 01 00 00       	jmp    0x40f2ac
40f14d:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
40f151:	74 0a                	je     0x40f15d
40f153:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
40f157:	0f 84 97 00 00 00    	je     0x40f1f4
40f15d:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40f161:	0f 85 8d 00 00 00    	jne    0x40f1f4
40f167:	68 10 0c 45 00       	push   $0x450c10
40f16c:	ff 77 54             	push   0x54(%edi)
40f16f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f172:	68 e8 1b 45 00       	push   $0x451be8
40f177:	50                   	push   %eax
40f178:	e8 a3 2d ff ff       	call   0x401f20
40f17d:	8b f0                	mov    %eax,%esi
40f17f:	83 c4 10             	add    $0x10,%esp
40f182:	85 f6                	test   %esi,%esi
40f184:	79 0a                	jns    0x40f190
40f186:	68 00 1c 45 00       	push   $0x451c00
40f18b:	e9 1c 01 00 00       	jmp    0x40f2ac
40f190:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f193:	50                   	push   %eax
40f194:	68 06 00 02 00       	push   $0x20006
40f199:	ff 75 08             	push   0x8(%ebp)
40f19c:	ff 77 4c             	push   0x4c(%edi)
40f19f:	e8 e4 18 03 00       	call   0x440a88
40f1a4:	8b f0                	mov    %eax,%esi
40f1a6:	85 f6                	test   %esi,%esi
40f1a8:	79 0a                	jns    0x40f1b4
40f1aa:	68 34 1c 45 00       	push   $0x451c34
40f1af:	e9 f8 00 00 00       	jmp    0x40f2ac
40f1b4:	ff 75 f8             	push   -0x8(%ebp)
40f1b7:	ff 77 10             	push   0x10(%edi)
40f1ba:	ff 75 fc             	push   -0x4(%ebp)
40f1bd:	e8 d0 21 03 00       	call   0x441392
40f1c2:	8b f0                	mov    %eax,%esi
40f1c4:	85 f6                	test   %esi,%esi
40f1c6:	79 0a                	jns    0x40f1d2
40f1c8:	68 50 1c 45 00       	push   $0x451c50
40f1cd:	e9 da 00 00 00       	jmp    0x40f2ac
40f1d2:	ff 77 58             	push   0x58(%edi)
40f1d5:	68 7c 0f 45 00       	push   $0x450f7c
40f1da:	53                   	push   %ebx
40f1db:	e8 b2 21 03 00       	call   0x441392
40f1e0:	8b f0                	mov    %eax,%esi
40f1e2:	85 f6                	test   %esi,%esi
40f1e4:	0f 89 ca 00 00 00    	jns    0x40f2b4
40f1ea:	68 70 1c 45 00       	push   $0x451c70
40f1ef:	e9 b8 00 00 00       	jmp    0x40f2ac
40f1f4:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f1f7:	50                   	push   %eax
40f1f8:	68 06 00 02 00       	push   $0x20006
40f1fd:	ff 75 08             	push   0x8(%ebp)
40f200:	ff 77 4c             	push   0x4c(%edi)
40f203:	e8 37 1c 03 00       	call   0x440e3f
40f208:	8b f0                	mov    %eax,%esi
40f20a:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
40f210:	74 4f                	je     0x40f261
40f212:	81 fe 03 00 07 80    	cmp    $0x80070003,%esi
40f218:	74 47                	je     0x40f261
40f21a:	ff 77 10             	push   0x10(%edi)
40f21d:	ff 75 fc             	push   -0x4(%ebp)
40f220:	ff 15 20 b0 44 00    	call   *0x44b020
40f226:	33 c9                	xor    %ecx,%ecx
40f228:	83 f8 02             	cmp    $0x2,%eax
40f22b:	0f 44 c1             	cmove  %ecx,%eax
40f22e:	85 c0                	test   %eax,%eax
40f230:	74 31                	je     0x40f263
40f232:	0f b7 f0             	movzwl %ax,%esi
40f235:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40f23b:	85 c0                	test   %eax,%eax
40f23d:	0f 4e f0             	cmovle %eax,%esi
40f240:	b8 05 40 00 80       	mov    $0x80004005,%eax
40f245:	85 f6                	test   %esi,%esi
40f247:	0f 49 f0             	cmovns %eax,%esi
40f24a:	56                   	push   %esi
40f24b:	68 d7 04 00 00       	push   $0x4d7
40f250:	68 c0 12 45 00       	push   $0x4512c0
40f255:	e8 79 45 ff ff       	call   0x4037d3
40f25a:	68 9c 1c 45 00       	push   $0x451c9c
40f25f:	eb 4b                	jmp    0x40f2ac
40f261:	33 f6                	xor    %esi,%esi
40f263:	85 db                	test   %ebx,%ebx
40f265:	74 4d                	je     0x40f2b4
40f267:	68 7c 0f 45 00       	push   $0x450f7c
40f26c:	53                   	push   %ebx
40f26d:	ff 15 20 b0 44 00    	call   *0x44b020
40f273:	33 c9                	xor    %ecx,%ecx
40f275:	83 f8 02             	cmp    $0x2,%eax
40f278:	0f 44 c1             	cmove  %ecx,%eax
40f27b:	85 c0                	test   %eax,%eax
40f27d:	74 35                	je     0x40f2b4
40f27f:	0f b7 f0             	movzwl %ax,%esi
40f282:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40f288:	85 c0                	test   %eax,%eax
40f28a:	0f 4e f0             	cmovle %eax,%esi
40f28d:	b8 05 40 00 80       	mov    $0x80004005,%eax
40f292:	85 f6                	test   %esi,%esi
40f294:	0f 49 f0             	cmovns %eax,%esi
40f297:	56                   	push   %esi
40f298:	68 e1 04 00 00       	push   $0x4e1
40f29d:	68 c0 12 45 00       	push   $0x4512c0
40f2a2:	e8 2c 45 ff ff       	call   0x4037d3
40f2a7:	68 bc 1c 45 00       	push   $0x451cbc
40f2ac:	56                   	push   %esi
40f2ad:	e8 7d 0e 03 00       	call   0x44012f
40f2b2:	59                   	pop    %ecx
40f2b3:	59                   	pop    %ecx
40f2b4:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40f2b8:	74 08                	je     0x40f2c2
40f2ba:	ff 75 f8             	push   -0x8(%ebp)
40f2bd:	e8 2d 62 03 00       	call   0x4454ef
40f2c2:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f2c6:	74 09                	je     0x40f2d1
40f2c8:	ff 75 fc             	push   -0x4(%ebp)
40f2cb:	ff 15 00 b0 44 00    	call   *0x44b000
40f2d1:	5f                   	pop    %edi
40f2d2:	8b c6                	mov    %esi,%eax
40f2d4:	5e                   	pop    %esi
40f2d5:	5b                   	pop    %ebx
40f2d6:	8b e5                	mov    %ebp,%esp
40f2d8:	5d                   	pop    %ebp
40f2d9:	c2 10 00             	ret    $0x10
40f2dc:	55                   	push   %ebp