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
40f2dd:	8b ec                	mov    %esp,%ebp
40f2df:	83 ec 10             	sub    $0x10,%esp
40f2e2:	56                   	push   %esi
40f2e3:	33 c0                	xor    %eax,%eax
40f2e5:	57                   	push   %edi
40f2e6:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f2e9:	8b f0                	mov    %eax,%esi
40f2eb:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f2ee:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f2f1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f2f4:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f2f7:	39 47 04             	cmp    %eax,0x4(%edi)
40f2fa:	0f 86 06 01 00 00    	jbe    0x40f406
40f300:	8b c8                	mov    %eax,%ecx
40f302:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40f305:	53                   	push   %ebx
40f306:	8b 1f                	mov    (%edi),%ebx
40f308:	50                   	push   %eax
40f309:	03 d9                	add    %ecx,%ebx
40f30b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f30e:	50                   	push   %eax
40f30f:	ff 73 08             	push   0x8(%ebx)
40f312:	ff 75 08             	push   0x8(%ebp)
40f315:	e8 b5 7e ff ff       	call   0x4071cf
40f31a:	8b f0                	mov    %eax,%esi
40f31c:	85 f6                	test   %esi,%esi
40f31e:	0f 88 aa 00 00 00    	js     0x40f3ce
40f324:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f327:	50                   	push   %eax
40f328:	68 ac 0f 45 00       	push   $0x450fac
40f32d:	ff 75 f4             	push   -0xc(%ebp)
40f330:	e8 44 3a ff ff       	call   0x402d79
40f335:	8b f0                	mov    %eax,%esi
40f337:	85 f6                	test   %esi,%esi
40f339:	0f 88 88 00 00 00    	js     0x40f3c7
40f33f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f342:	50                   	push   %eax
40f343:	ff 33                	push   (%ebx)
40f345:	ff 75 fc             	push   -0x4(%ebp)
40f348:	e8 2c 3a ff ff       	call   0x402d79
40f34d:	8b f0                	mov    %eax,%esi
40f34f:	85 f6                	test   %esi,%esi
40f351:	78 6d                	js     0x40f3c0
40f353:	6a 00                	push   $0x0
40f355:	ff 75 fc             	push   -0x4(%ebp)
40f358:	e8 b6 4c ff ff       	call   0x404013
40f35d:	8b f0                	mov    %eax,%esi
40f35f:	85 f6                	test   %esi,%esi
40f361:	78 4a                	js     0x40f3ad
40f363:	6a 00                	push   $0x0
40f365:	ff 73 0c             	push   0xc(%ebx)
40f368:	ff 15 f4 b0 44 00    	call   *0x44b0f4
40f36e:	50                   	push   %eax
40f36f:	ff 73 0c             	push   0xc(%ebx)
40f372:	68 80 00 00 00       	push   $0x80
40f377:	ff 75 f8             	push   -0x8(%ebp)
40f37a:	e8 e8 58 03 00       	call   0x444c67
40f37f:	8b f0                	mov    %eax,%esi
40f381:	85 f6                	test   %esi,%esi
40f383:	78 1e                	js     0x40f3a3
40f385:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f388:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f38b:	40                   	inc    %eax
40f38c:	83 c1 10             	add    $0x10,%ecx
40f38f:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f392:	3b 47 04             	cmp    0x4(%edi),%eax
40f395:	6a 00                	push   $0x0
40f397:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40f39a:	58                   	pop    %eax
40f39b:	0f 82 65 ff ff ff    	jb     0x40f306
40f3a1:	eb 38                	jmp    0x40f3db
40f3a3:	ff 75 f8             	push   -0x8(%ebp)
40f3a6:	68 c8 1f 45 00       	push   $0x451fc8
40f3ab:	eb 08                	jmp    0x40f3b5
40f3ad:	ff 75 fc             	push   -0x4(%ebp)
40f3b0:	68 a4 1f 45 00       	push   $0x451fa4
40f3b5:	56                   	push   %esi
40f3b6:	e8 74 0d 03 00       	call   0x44012f
40f3bb:	83 c4 0c             	add    $0xc,%esp
40f3be:	eb 1b                	jmp    0x40f3db
40f3c0:	68 80 1f 45 00       	push   $0x451f80
40f3c5:	eb 0c                	jmp    0x40f3d3
40f3c7:	68 58 1f 45 00       	push   $0x451f58
40f3cc:	eb 05                	jmp    0x40f3d3
40f3ce:	68 34 1f 45 00       	push   $0x451f34
40f3d3:	56                   	push   %esi
40f3d4:	e8 56 0d 03 00       	call   0x44012f
40f3d9:	59                   	pop    %ecx
40f3da:	59                   	pop    %ecx
40f3db:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40f3df:	5b                   	pop    %ebx
40f3e0:	74 08                	je     0x40f3ea
40f3e2:	ff 75 f8             	push   -0x8(%ebp)
40f3e5:	e8 05 61 03 00       	call   0x4454ef
40f3ea:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f3ee:	74 08                	je     0x40f3f8
40f3f0:	ff 75 fc             	push   -0x4(%ebp)
40f3f3:	e8 f7 60 03 00       	call   0x4454ef
40f3f8:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40f3fc:	74 08                	je     0x40f406
40f3fe:	ff 75 f4             	push   -0xc(%ebp)
40f401:	e8 e9 60 03 00       	call   0x4454ef
40f406:	5f                   	pop    %edi
40f407:	8b c6                	mov    %esi,%eax
40f409:	5e                   	pop    %esi
40f40a:	8b e5                	mov    %ebp,%esp
40f40c:	5d                   	pop    %ebp
40f40d:	c2 08 00             	ret    $0x8
40f410:	55                   	push   %ebp
40f411:	8b ec                	mov    %esp,%ebp
40f413:	51                   	push   %ecx
40f414:	51                   	push   %ecx
40f415:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40f419:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f41c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f420:	56                   	push   %esi
40f421:	57                   	push   %edi
40f422:	8b 7d 08             	mov    0x8(%ebp),%edi
40f425:	50                   	push   %eax
40f426:	57                   	push   %edi
40f427:	e8 a1 f3 ff ff       	call   0x40e7cd
40f42c:	8b f0                	mov    %eax,%esi
40f42e:	85 f6                	test   %esi,%esi
40f430:	79 12                	jns    0x40f444
40f432:	68 f0 1f 45 00       	push   $0x451ff0
40f437:	56                   	push   %esi
40f438:	e8 f2 0c 03 00       	call   0x44012f
40f43d:	59                   	pop    %ecx
40f43e:	59                   	pop    %ecx
40f43f:	e9 71 01 00 00       	jmp    0x40f5b5
40f444:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f447:	50                   	push   %eax
40f448:	68 06 00 02 00       	push   $0x20006
40f44d:	ff 75 f8             	push   -0x8(%ebp)
40f450:	ff 77 4c             	push   0x4c(%edi)
40f453:	e8 30 16 03 00       	call   0x440a88
40f458:	8b f0                	mov    %eax,%esi
40f45a:	85 f6                	test   %esi,%esi
40f45c:	79 07                	jns    0x40f465
40f45e:	68 30 20 45 00       	push   $0x452030
40f463:	eb d2                	jmp    0x40f437
40f465:	68 64 20 45 00       	push   $0x452064
40f46a:	68 68 20 45 00       	push   $0x452068
40f46f:	ff 75 fc             	push   -0x4(%ebp)
40f472:	e8 1b 1f 03 00       	call   0x441392
40f477:	8b f0                	mov    %eax,%esi
40f479:	85 f6                	test   %esi,%esi
40f47b:	79 0a                	jns    0x40f487
40f47d:	68 68 20 45 00       	push   $0x452068
40f482:	e9 20 01 00 00       	jmp    0x40f5a7
40f487:	ff 77 60             	push   0x60(%edi)
40f48a:	68 94 20 45 00       	push   $0x452094
40f48f:	ff 75 fc             	push   -0x4(%ebp)
40f492:	e8 fb 1e 03 00       	call   0x441392
40f497:	8b f0                	mov    %eax,%esi
40f499:	85 f6                	test   %esi,%esi
40f49b:	79 0a                	jns    0x40f4a7
40f49d:	68 94 20 45 00       	push   $0x452094
40f4a2:	e9 00 01 00 00       	jmp    0x40f5a7
40f4a7:	ff 77 64             	push   0x64(%edi)
40f4aa:	68 ac 20 45 00       	push   $0x4520ac
40f4af:	ff 75 fc             	push   -0x4(%ebp)
40f4b2:	e8 db 1e 03 00       	call   0x441392
40f4b7:	8b f0                	mov    %eax,%esi
40f4b9:	85 f6                	test   %esi,%esi
40f4bb:	79 0a                	jns    0x40f4c7
40f4bd:	68 ac 20 45 00       	push   $0x4520ac
40f4c2:	e9 e0 00 00 00       	jmp    0x40f5a7
40f4c7:	ff 77 68             	push   0x68(%edi)
40f4ca:	68 cc 0d 45 00       	push   $0x450dcc
40f4cf:	ff 75 fc             	push   -0x4(%ebp)
40f4d2:	e8 bb 1e 03 00       	call   0x441392
40f4d7:	8b f0                	mov    %eax,%esi
40f4d9:	85 f6                	test   %esi,%esi
40f4db:	79 0a                	jns    0x40f4e7