4050ac:	68 a8 ca 40 00       	push   $0x40caa8
4050b1:	8d 84 35 90 fe ff ff 	lea    -0x170(%ebp,%esi,1),%eax
4050b8:	50                   	push   %eax
4050b9:	e8 8a 3f 00 00       	call   0x409048
4050be:	83 c6 0e             	add    $0xe,%esi
4050c1:	b8 04 01 00 00       	mov    $0x104,%eax
4050c6:	83 c4 14             	add    $0x14,%esp
4050c9:	2b c6                	sub    %esi,%eax
4050cb:	50                   	push   %eax
4050cc:	8d 84 35 90 fe ff ff 	lea    -0x170(%ebp,%esi,1),%eax
4050d3:	50                   	push   %eax
4050d4:	57                   	push   %edi
4050d5:	57                   	push   %edi
4050d6:	6a 08                	push   $0x8
4050d8:	68 00 04 00 00       	push   $0x400
4050dd:	ff 15 f4 a0 40 00    	call   *0x40a0f4
4050e3:	6a 01                	push   $0x1
4050e5:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4050eb:	ff 75 fc             	push   -0x4(%ebp)
4050ee:	8b cb                	mov    %ebx,%ecx
4050f0:	68 00 00 ff ff       	push   $0xffff0000
4050f5:	50                   	push   %eax
4050f6:	e8 d8 fd ff ff       	call   0x404ed3
4050fb:	89 43 4c             	mov    %eax,0x4c(%ebx)
4050fe:	8b 43 3c             	mov    0x3c(%ebx),%eax
405101:	83 b8 e0 01 00 00 01 	cmpl   $0x1,0x1e0(%eax)
405108:	0f 85 db 00 00 00    	jne    0x4051e9
40510e:	8b 83 78 02 00 00    	mov    0x278(%ebx),%eax
405114:	8b 8b 7c 02 00 00    	mov    0x27c(%ebx),%ecx
40511a:	8b 35 58 a1 40 00    	mov    0x40a158,%esi
405120:	3b c7                	cmp    %edi,%eax
405122:	89 45 f8             	mov    %eax,-0x8(%ebp)
405125:	89 4d fc             	mov    %ecx,-0x4(%ebp)
405128:	74 51                	je     0x40517b
40512a:	8d 45 94             	lea    -0x6c(%ebp),%eax
40512d:	50                   	push   %eax
40512e:	8d 45 f8             	lea    -0x8(%ebp),%eax
405131:	50                   	push   %eax
405132:	ff 15 78 a0 40 00    	call   *0x40a078
405138:	8d 45 d8             	lea    -0x28(%ebp),%eax
40513b:	50                   	push   %eax
40513c:	8d 45 94             	lea    -0x6c(%ebp),%eax
40513f:	50                   	push   %eax
405140:	57                   	push   %edi
405141:	ff 15 74 a0 40 00    	call   *0x40a074
405147:	0f b7 45 da          	movzwl -0x26(%ebp),%eax
40514b:	50                   	push   %eax
40514c:	0f b7 45 de          	movzwl -0x22(%ebp),%eax
405150:	50                   	push   %eax
405151:	0f b7 45 e4          	movzwl -0x1c(%ebp),%eax
405155:	50                   	push   %eax
405156:	0f b7 45 e2          	movzwl -0x1e(%ebp),%eax
40515a:	50                   	push   %eax
40515b:	0f b7 45 e0          	movzwl -0x20(%ebp),%eax
40515f:	50                   	push   %eax
405160:	8d 45 a4             	lea    -0x5c(%ebp),%eax
405163:	68 8c ca 40 00       	push   $0x40ca8c
405168:	50                   	push   %eax
405169:	ff d6                	call   *%esi
40516b:	83 c4 1c             	add    $0x1c,%esp
40516e:	eb 1b                	jmp    0x40518b
405170:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
405176:	e9 44 fe ff ff       	jmp    0x404fbf
40517b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40517e:	68 88 ca 40 00       	push   $0x40ca88
405183:	50                   	push   %eax
405184:	e8 bf 3e 00 00       	call   0x409048
405189:	59                   	pop    %ecx
40518a:	59                   	pop    %ecx
40518b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40518e:	dd 83 70 02 00 00    	fldl   0x270(%ebx)
405194:	50                   	push   %eax
405195:	8d 83 64 01 00 00    	lea    0x164(%ebx),%eax
40519b:	ff b3 68 02 00 00    	push   0x268(%ebx)
4051a1:	51                   	push   %ecx
4051a2:	51                   	push   %ecx
4051a3:	dd 1c 24             	fstpl  (%esp)
4051a6:	ff 73 58             	push   0x58(%ebx)
4051a9:	50                   	push   %eax
4051aa:	68 f0 d4 40 00       	push   $0x40d4f0
4051af:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4051b5:	68 38 ca 40 00       	push   $0x40ca38
4051ba:	50                   	push   %eax
4051bb:	ff d6                	call   *%esi
4051bd:	83 c4 24             	add    $0x24,%esp
4051c0:	8d 45 f0             	lea    -0x10(%ebp),%eax
4051c3:	57                   	push   %edi
4051c4:	50                   	push   %eax
4051c5:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4051cb:	50                   	push   %eax
4051cc:	e8 7d 3e 00 00       	call   0x40904e
4051d1:	59                   	pop    %ecx
4051d2:	50                   	push   %eax
4051d3:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4051d9:	50                   	push   %eax
4051da:	8b 43 3c             	mov    0x3c(%ebx),%eax
4051dd:	ff b0 e4 01 00 00    	push   0x1e4(%eax)
4051e3:	ff 15 70 a0 40 00    	call   *0x40a070
4051e9:	53                   	push   %ebx
4051ea:	68 38 44 40 00       	push   $0x404438
4051ef:	ff 15 38 a2 40 00    	call   *0x40a238
4051f5:	8b 45 f4             	mov    -0xc(%ebp),%eax
4051f8:	80 38 00             	cmpb   $0x0,(%eax)
4051fb:	74 10                	je     0x40520d
4051fd:	6a 04                	push   $0x4
4051ff:	8b cb                	mov    %ebx,%ecx
405201:	ff 73 28             	push   0x28(%ebx)
405204:	ff 73 4c             	push   0x4c(%ebx)
405207:	50                   	push   %eax
405208:	e8 c6 fc ff ff       	call   0x404ed3
40520d:	39 7d 08             	cmp    %edi,0x8(%ebp)
405210:	0f 84 ae 00 00 00    	je     0x4052c4
405216:	8d 45 f0             	lea    -0x10(%ebp),%eax
405219:	50                   	push   %eax
40521a:	57                   	push   %edi
40521b:	57                   	push   %edi
40521c:	ff 35 6c a0 40 00    	push   0x40a06c
405222:	57                   	push   %edi
405223:	57                   	push   %edi
405224:	ff 75 08             	push   0x8(%ebp)
405227:	ff 15 68 a0 40 00    	call   *0x40a068
40522d:	8b f0                	mov    %eax,%esi
40522f:	3b f7                	cmp    %edi,%esi
405231:	0f 84 84 00 00 00    	je     0x4052bb
405237:	68 c8 00 00 00       	push   $0xc8
40523c:	56                   	push   %esi
40523d:	ff 15 14 a1 40 00    	call   *0x40a114
405243:	85 c0                	test   %eax,%eax
405245:	75 6d                	jne    0x4052b4
405247:	8d 45 fc             	lea    -0x4(%ebp),%eax
40524a:	50                   	push   %eax
40524b:	56                   	push   %esi
40524c:	ff 15 64 a0 40 00    	call   *0x40a064
405252:	39 7d fc             	cmp    %edi,-0x4(%ebp)
405255:	74 5d                	je     0x4052b4
405257:	8d 45 f0             	lea    -0x10(%ebp),%eax
40525a:	50                   	push   %eax
40525b:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
405261:	68 f6 00 00 00       	push   $0xf6
405266:	50                   	push   %eax
405267:	ff 75 fc             	push   -0x4(%ebp)
40526a:	ff 75 08             	push   0x8(%ebp)
40526d:	ff 15 60 a0 40 00    	call   *0x40a060
405273:	85 c0                	test   %eax,%eax
405275:	74 3d                	je     0x4052b4
405277:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
40527d:	68 28 ca 40 00       	push   $0x40ca28
405282:	50                   	push   %eax
405283:	e8 c0 3d 00 00       	call   0x409048
405288:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
40528e:	50                   	push   %eax
40528f:	8d 85 99 fd ff ff    	lea    -0x267(%ebp),%eax
405295:	50                   	push   %eax
405296:	e8 ad 3d 00 00       	call   0x409048
40529b:	83 c4 10             	add    $0x10,%esp
40529e:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
4052a4:	8b cb                	mov    %ebx,%ecx
4052a6:	6a 03                	push   $0x3
4052a8:	ff 73 2c             	push   0x2c(%ebx)
4052ab:	ff 73 4c             	push   0x4c(%ebx)
4052ae:	50                   	push   %eax
4052af:	e8 1f fc ff ff       	call   0x404ed3
4052b4:	56                   	push   %esi
4052b5:	ff 15 dc a0 40 00    	call   *0x40a0dc
4052bb:	ff 75 08             	push   0x8(%ebp)
4052be:	ff 15 dc a0 40 00    	call   *0x40a0dc
4052c4:	8b 43 5c             	mov    0x5c(%ebx),%eax
4052c7:	3b c7                	cmp    %edi,%eax
4052c9:	76 6e                	jbe    0x405339
4052cb:	50                   	push   %eax
4052cc:	57                   	push   %edi
4052cd:	68 10 04 00 00       	push   $0x410
4052d2:	ff 15 0c a1 40 00    	call   *0x40a10c
4052d8:	8b f0                	mov    %eax,%esi
4052da:	3b f7                	cmp    %edi,%esi
4052dc:	74 5b                	je     0x405339
4052de:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4052e4:	50                   	push   %eax
4052e5:	56                   	push   %esi
4052e6:	e8 34 39 00 00       	call   0x408c1f
4052eb:	59                   	pop    %ecx
4052ec:	3c 01                	cmp    $0x1,%al
4052ee:	59                   	pop    %ecx
4052ef:	75 41                	jne    0x405332
4052f1:	80 65 82 00          	andb   $0x0,-0x7e(%ebp)
4052f5:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
4052fb:	68 18 ca 40 00       	push   $0x40ca18
405300:	50                   	push   %eax
405301:	e8 42 3d 00 00       	call   0x409048
405306:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
40530c:	50                   	push   %eax
40530d:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
405313:	50                   	push   %eax
405314:	e8 29 3c 00 00       	call   0x408f42
405319:	83 c4 10             	add    $0x10,%esp
40531c:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
405322:	8b cb                	mov    %ebx,%ecx
405324:	6a 05                	push   $0x5
405326:	ff 73 04             	push   0x4(%ebx)
405329:	ff 73 4c             	push   0x4c(%ebx)
40532c:	50                   	push   %eax
40532d:	e8 a1 fb ff ff       	call   0x404ed3
405332:	56                   	push   %esi
405333:	ff 15 dc a0 40 00    	call   *0x40a0dc
405339:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
40533f:	68 0c ca 40 00       	push   $0x40ca0c
405344:	50                   	push   %eax
405345:	e8 fe 3c 00 00       	call   0x409048
40534a:	ff b3 a0 02 00 00    	push   0x2a0(%ebx)
405350:	ff 73 58             	push   0x58(%ebx)
405353:	e8 11 39 00 00       	call   0x408c69
405358:	83 c4 10             	add    $0x10,%esp
40535b:	83 e8 20             	sub    $0x20,%eax
40535e:	74 49                	je     0x4053a9
405360:	83 e8 20             	sub    $0x20,%eax
405363:	74 3d                	je     0x4053a2
405365:	83 e8 40             	sub    $0x40,%eax
405368:	74 31                	je     0x40539b
40536a:	2d 80 00 00 00       	sub    $0x80,%eax
40536f:	74 23                	je     0x405394
405371:	2d 00 3f 00 00       	sub    $0x3f00,%eax
405376:	74 15                	je     0x40538d
405378:	2d 00 40 00 00       	sub    $0x4000,%eax
40537d:	74 07                	je     0x405386
40537f:	68 6c c3 40 00       	push   $0x40c36c
405384:	eb 28                	jmp    0x4053ae
405386:	68 fc c9 40 00       	push   $0x40c9fc
40538b:	eb 21                	jmp    0x4053ae
40538d:	68 ec c9 40 00       	push   $0x40c9ec
405392:	eb 1a                	jmp    0x4053ae
405394:	68 e0 c9 40 00       	push   $0x40c9e0
405399:	eb 13                	jmp    0x4053ae
40539b:	68 d8 c9 40 00       	push   $0x40c9d8
4053a0:	eb 0c                	jmp    0x4053ae
4053a2:	68 d0 c9 40 00       	push   $0x40c9d0
4053a7:	eb 05                	jmp    0x4053ae
4053a9:	68 c8 c9 40 00       	push   $0x40c9c8
4053ae:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4053b4:	50                   	push   %eax
4053b5:	e8 88 3b 00 00       	call   0x408f42
4053ba:	59                   	pop    %ecx
4053bb:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4053c1:	59                   	pop    %ecx
4053c2:	6a 0e                	push   $0xe
4053c4:	8b cb                	mov    %ebx,%ecx
4053c6:	ff 73 24             	push   0x24(%ebx)
4053c9:	ff 73 4c             	push   0x4c(%ebx)
4053cc:	50                   	push   %eax
4053cd:	e8 01 fb ff ff       	call   0x404ed3
4053d2:	6a 05                	push   $0x5
4053d4:	be b0 c9 40 00       	mov    $0x40c9b0,%esi
4053d9:	59                   	pop    %ecx
4053da:	8d bd 88 fc ff ff    	lea    -0x378(%ebp),%edi
4053e0:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4053e2:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
4053e4:	6a 3b                	push   $0x3b
4053e6:	33 c0                	xor    %eax,%eax
4053e8:	59                   	pop    %ecx
4053e9:	8d bd 9e fc ff ff    	lea    -0x362(%ebp),%edi
4053ef:	f3 ab                	rep stos %eax,%es:(%edi)
4053f1:	66 ab                	stos   %ax,%es:(%edi)
4053f3:	8d 83 90 02 00 00    	lea    0x290(%ebx),%eax
4053f9:	68 e8 00 00 00       	push   $0xe8
4053fe:	50                   	push   %eax
4053ff:	8d 85 9d fc ff ff    	lea    -0x363(%ebp),%eax
405405:	50                   	push   %eax
405406:	e8 23 35 00 00       	call   0x40892e
40540b:	8d 85 88 fc ff ff    	lea    -0x378(%ebp),%eax
405411:	68 a8 c9 40 00       	push   $0x40c9a8
405416:	50                   	push   %eax
405417:	e8 26 3b 00 00       	call   0x408f42
40541c:	83 c4 14             	add    $0x14,%esp
40541f:	8d 85 88 fc ff ff    	lea    -0x378(%ebp),%eax
405425:	8b cb                	mov    %ebx,%ecx
405427:	6a 17                	push   $0x17
405429:	ff 73 0c             	push   0xc(%ebx)
40542c:	ff 73 4c             	push   0x4c(%ebx)
40542f:	50                   	push   %eax
405430:	e8 9e fa ff ff       	call   0x404ed3
405435:	6a 05                	push   $0x5
405437:	be 90 c9 40 00       	mov    $0x40c990,%esi
40543c:	59                   	pop    %ecx
40543d:	8d bd 80 fa ff ff    	lea    -0x580(%ebp),%edi
405443:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
405445:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
405447:	a4                   	movsb  %ds:(%esi),%es:(%edi)
405448:	6a 3b                	push   $0x3b
40544a:	33 c0                	xor    %eax,%eax
40544c:	59                   	pop    %ecx
40544d:	8d bd 97 fa ff ff    	lea    -0x569(%ebp),%edi
405453:	f3 ab                	rep stos %eax,%es:(%edi)
405455:	aa                   	stos   %al,%es:(%edi)
405456:	8d 83 98 02 00 00    	lea    0x298(%ebx),%eax
40545c:	68 e7 00 00 00       	push   $0xe7
405461:	50                   	push   %eax
405462:	8d 85 96 fa ff ff    	lea    -0x56a(%ebp),%eax
405468:	50                   	push   %eax
405469:	e8 c0 34 00 00       	call   0x40892e
40546e:	8d 85 80 fa ff ff    	lea    -0x580(%ebp),%eax
405474:	68 a8 c9 40 00       	push   $0x40c9a8
405479:	50                   	push   %eax
40547a:	e8 c3 3a 00 00       	call   0x408f42
40547f:	83 c4 14             	add    $0x14,%esp
405482:	8d 85 80 fa ff ff    	lea    -0x580(%ebp),%eax
405488:	8b cb                	mov    %ebx,%ecx
40548a:	6a 18                	push   $0x18
40548c:	ff 73 0c             	push   0xc(%ebx)
40548f:	ff 73 4c             	push   0x4c(%ebx)
405492:	50                   	push   %eax
405493:	e8 3b fa ff ff       	call   0x404ed3
405498:	80 bd 84 fb ff ff 00 	cmpb   $0x0,-0x47c(%ebp)
40549f:	0f 84 d6 00 00 00    	je     0x40557b
4054a5:	6a 08                	push   $0x8
4054a7:	8d 85 80 f6 ff ff    	lea    -0x980(%ebp),%eax
4054ad:	68 80 00 00 00       	push   $0x80
4054b2:	50                   	push   %eax
4054b3:	ff 75 f4             	push   -0xc(%ebp)
4054b6:	e8 2d 36 00 00       	call   0x408ae8
4054bb:	83 c4 10             	add    $0x10,%esp
4054be:	84 c0                	test   %al,%al
4054c0:	0f 84 b5 00 00 00    	je     0x40557b
4054c6:	6a 06                	push   $0x6
4054c8:	8b cb                	mov    %ebx,%ecx
4054ca:	ff 73 14             	push   0x14(%ebx)
4054cd:	ff 73 4c             	push   0x4c(%ebx)
4054d0:	68 80 c9 40 00       	push   $0x40c980
4054d5:	e8 f9 f9 ff ff       	call   0x404ed3
4054da:	6a 07                	push   $0x7
4054dc:	8b f0                	mov    %eax,%esi
4054de:	ff 73 14             	push   0x14(%ebx)
4054e1:	8d 85 80 f6 ff ff    	lea    -0x980(%ebp),%eax
4054e7:	8b cb                	mov    %ebx,%ecx
4054e9:	56                   	push   %esi
4054ea:	50                   	push   %eax
4054eb:	e8 e3 f9 ff ff       	call   0x404ed3
4054f0:	6a 08                	push   $0x8
4054f2:	8d 85 00 f7 ff ff    	lea    -0x900(%ebp),%eax
4054f8:	ff 73 14             	push   0x14(%ebx)
4054fb:	8b cb                	mov    %ebx,%ecx
4054fd:	56                   	push   %esi
4054fe:	50                   	push   %eax
4054ff:	e8 cf f9 ff ff       	call   0x404ed3
405504:	6a 09                	push   $0x9
405506:	8d 85 80 f7 ff ff    	lea    -0x880(%ebp),%eax
40550c:	5f                   	pop    %edi
40550d:	8b cb                	mov    %ebx,%ecx
40550f:	57                   	push   %edi
405510:	ff 73 14             	push   0x14(%ebx)
405513:	56                   	push   %esi
405514:	50                   	push   %eax