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
405515:	e8 b9 f9 ff ff       	call   0x404ed3
40551a:	57                   	push   %edi
40551b:	8d 85 00 f8 ff ff    	lea    -0x800(%ebp),%eax
405521:	ff 73 14             	push   0x14(%ebx)
405524:	8b cb                	mov    %ebx,%ecx
405526:	56                   	push   %esi
405527:	50                   	push   %eax
405528:	e8 a6 f9 ff ff       	call   0x404ed3
40552d:	57                   	push   %edi
40552e:	8d 85 80 f8 ff ff    	lea    -0x780(%ebp),%eax
405534:	ff 73 14             	push   0x14(%ebx)
405537:	8b cb                	mov    %ebx,%ecx
405539:	56                   	push   %esi
40553a:	50                   	push   %eax
40553b:	e8 93 f9 ff ff       	call   0x404ed3
405540:	57                   	push   %edi
405541:	8d 85 00 f9 ff ff    	lea    -0x700(%ebp),%eax
405547:	ff 73 14             	push   0x14(%ebx)
40554a:	8b cb                	mov    %ebx,%ecx
40554c:	56                   	push   %esi
40554d:	50                   	push   %eax
40554e:	e8 80 f9 ff ff       	call   0x404ed3
405553:	57                   	push   %edi
405554:	8d 85 80 f9 ff ff    	lea    -0x680(%ebp),%eax
40555a:	ff 73 14             	push   0x14(%ebx)
40555d:	8b cb                	mov    %ebx,%ecx
40555f:	56                   	push   %esi
405560:	50                   	push   %eax
405561:	e8 6d f9 ff ff       	call   0x404ed3
405566:	57                   	push   %edi
405567:	8d 85 00 fa ff ff    	lea    -0x600(%ebp),%eax
40556d:	ff 73 14             	push   0x14(%ebx)
405570:	8b cb                	mov    %ebx,%ecx
405572:	56                   	push   %esi
405573:	50                   	push   %eax
405574:	e8 5a f9 ff ff       	call   0x404ed3
405579:	eb 03                	jmp    0x40557e
40557b:	6a 09                	push   $0x9
40557d:	5f                   	pop    %edi
40557e:	8b cb                	mov    %ebx,%ecx
405580:	e8 a3 00 00 00       	call   0x405628
405585:	ff 73 58             	push   0x58(%ebx)
405588:	8b cb                	mov    %ebx,%ecx
40558a:	e8 7d 03 00 00       	call   0x40590c
40558f:	ff 73 58             	push   0x58(%ebx)
405592:	8b cb                	mov    %ebx,%ecx
405594:	e8 14 08 00 00       	call   0x405dad
405599:	8b 43 58             	mov    0x58(%ebx),%eax
40559c:	83 f8 04             	cmp    $0x4,%eax
40559f:	74 4b                	je     0x4055ec
4055a1:	33 f6                	xor    %esi,%esi
4055a3:	3b c6                	cmp    %esi,%eax
4055a5:	74 45                	je     0x4055ec
4055a7:	68 14 01 00 00       	push   $0x114
4055ac:	e8 9d 39 00 00       	call   0x408f4e
4055b1:	3b c6                	cmp    %esi,%eax
4055b3:	59                   	pop    %ecx
4055b4:	74 20                	je     0x4055d6
4055b6:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
4055b9:	8b 53 4c             	mov    0x4c(%ebx),%edx
4055bc:	89 b0 0c 01 00 00    	mov    %esi,0x10c(%eax)
4055c2:	89 98 04 01 00 00    	mov    %ebx,0x104(%eax)
4055c8:	89 90 08 01 00 00    	mov    %edx,0x108(%eax)
4055ce:	89 88 10 01 00 00    	mov    %ecx,0x110(%eax)
4055d4:	8b f0                	mov    %eax,%esi
4055d6:	85 f6                	test   %esi,%esi
4055d8:	74 12                	je     0x4055ec
4055da:	8d 43 60             	lea    0x60(%ebx),%eax
4055dd:	8b ce                	mov    %esi,%ecx
4055df:	50                   	push   %eax
4055e0:	e8 cd 19 00 00       	call   0x406fb2
4055e5:	56                   	push   %esi
4055e6:	e8 5d 39 00 00       	call   0x408f48
4055eb:	59                   	pop    %ecx
4055ec:	ff 73 4c             	push   0x4c(%ebx)
4055ef:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
4055f5:	6a 02                	push   $0x2
4055f7:	68 02 11 00 00       	push   $0x1102
4055fc:	ff 33                	push   (%ebx)
4055fe:	ff d6                	call   *%esi
405600:	6a 00                	push   $0x0
405602:	6a 01                	push   $0x1
405604:	6a 0b                	push   $0xb
405606:	ff 33                	push   (%ebx)
405608:	ff d6                	call   *%esi
40560a:	8b 43 38             	mov    0x38(%ebx),%eax
40560d:	85 c0                	test   %eax,%eax
40560f:	74 03                	je     0x405614
405611:	50                   	push   %eax
405612:	eb 03                	jmp    0x405617
405614:	ff 73 4c             	push   0x4c(%ebx)
405617:	57                   	push   %edi
405618:	68 0b 11 00 00       	push   $0x110b
40561d:	ff 33                	push   (%ebx)
40561f:	ff d6                	call   *%esi
405621:	5f                   	pop    %edi
405622:	5e                   	pop    %esi
405623:	5b                   	pop    %ebx
405624:	c9                   	leave
405625:	c2 04 00             	ret    $0x4
405628:	b8 7c 94 40 00       	mov    $0x40947c,%eax
40562d:	e8 fe 38 00 00       	call   0x408f30
405632:	81 ec 5c 01 00 00    	sub    $0x15c,%esp
405638:	53                   	push   %ebx
405639:	56                   	push   %esi
40563a:	57                   	push   %edi
40563b:	33 f6                	xor    %esi,%esi
40563d:	89 65 f0             	mov    %esp,-0x10(%ebp)
405640:	33 ff                	xor    %edi,%edi
405642:	56                   	push   %esi
405643:	8b d9                	mov    %ecx,%ebx
405645:	6a 04                	push   $0x4
405647:	89 75 dc             	mov    %esi,-0x24(%ebp)
40564a:	89 75 e0             	mov    %esi,-0x20(%ebp)
40564d:	89 75 d0             	mov    %esi,-0x30(%ebp)
405650:	89 75 d4             	mov    %esi,-0x2c(%ebp)
405653:	89 7d d8             	mov    %edi,-0x28(%ebp)
405656:	89 75 fc             	mov    %esi,-0x4(%ebp)
405659:	e8 7a 38 00 00       	call   0x408ed8
40565e:	3b c6                	cmp    %esi,%eax
405660:	89 45 ec             	mov    %eax,-0x14(%ebp)
405663:	75 11                	jne    0x405676
405665:	8d 45 c0             	lea    -0x40(%ebp),%eax
405668:	68 d8 a5 40 00       	push   $0x40a5d8
40566d:	50                   	push   %eax
40566e:	89 75 c0             	mov    %esi,-0x40(%ebp)
405671:	e8 c0 38 00 00       	call   0x408f36
405676:	8d 4d a0             	lea    -0x60(%ebp),%ecx
405679:	c7 45 a0 1c 00 00 00 	movl   $0x1c,-0x60(%ebp)
405680:	51                   	push   %ecx
405681:	50                   	push   %eax
405682:	e8 4b 38 00 00       	call   0x408ed2
405687:	85 c0                	test   %eax,%eax
405689:	75 11                	jne    0x40569c
40568b:	8d 45 c8             	lea    -0x38(%ebp),%eax
40568e:	68 d8 a5 40 00       	push   $0x40a5d8
405693:	50                   	push   %eax
405694:	89 75 c8             	mov    %esi,-0x38(%ebp)
405697:	e8 9a 38 00 00       	call   0x408f36
40569c:	83 7d a0 1c          	cmpl   $0x1c,-0x60(%ebp)
4056a0:	74 11                	je     0x4056b3
4056a2:	8d 45 cc             	lea    -0x34(%ebp),%eax
4056a5:	68 d8 a5 40 00       	push   $0x40a5d8
4056aa:	50                   	push   %eax
4056ab:	89 75 cc             	mov    %esi,-0x34(%ebp)
4056ae:	e8 83 38 00 00       	call   0x408f36
4056b3:	6a 0a                	push   $0xa
4056b5:	8b cb                	mov    %ebx,%ecx
4056b7:	ff 73 10             	push   0x10(%ebx)
4056ba:	ff 73 4c             	push   0x4c(%ebx)
4056bd:	68 d4 ca 40 00       	push   $0x40cad4
4056c2:	e8 0c f8 ff ff       	call   0x404ed3
4056c7:	89 45 bc             	mov    %eax,-0x44(%ebp)
4056ca:	89 75 e8             	mov    %esi,-0x18(%ebp)
4056cd:	8b 45 ac             	mov    -0x54(%ebp),%eax
4056d0:	3b 43 58             	cmp    0x58(%ebx),%eax
4056d3:	75 50                	jne    0x405725
4056d5:	8d 45 d0             	lea    -0x30(%ebp),%eax
4056d8:	8b cb                	mov    %ebx,%ecx
4056da:	50                   	push   %eax
4056db:	ff 75 a8             	push   -0x58(%ebp)
4056de:	e8 5f 01 00 00       	call   0x405842
4056e3:	3b c6                	cmp    %esi,%eax
4056e5:	74 3e                	je     0x405725
4056e7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4056ea:	8d 70 01             	lea    0x1(%eax),%esi
4056ed:	8b c6                	mov    %esi,%eax
4056ef:	c1 e0 03             	shl    $0x3,%eax
4056f2:	50                   	push   %eax
4056f3:	57                   	push   %edi
4056f4:	ff 15 30 a1 40 00    	call   *0x40a130
4056fa:	8b f8                	mov    %eax,%edi
4056fc:	8d 45 d0             	lea    -0x30(%ebp),%eax
4056ff:	6a 08                	push   $0x8
405701:	50                   	push   %eax