40d302:	8b ce                	mov    %esi,%ecx
40d304:	e8 ed d0 ff ff       	call   0x40a3f6
40d309:	8b b5 f0 f9 ff ff    	mov    -0x610(%ebp),%esi
40d30f:	33 d2                	xor    %edx,%edx
40d311:	68 fe 00 00 00       	push   $0xfe
40d316:	51                   	push   %ecx
40d317:	8b ce                	mov    %esi,%ecx
40d319:	e8 c4 cc ff ff       	call   0x409fe2
40d31e:	8b d0                	mov    %eax,%edx
40d320:	8b ce                	mov    %esi,%ecx
40d322:	e8 cf d0 ff ff       	call   0x40a3f6
40d327:	6a 00                	push   $0x0
40d329:	8b d3                	mov    %ebx,%edx
40d32b:	8b cf                	mov    %edi,%ecx
40d32d:	e8 e4 b4 ff ff       	call   0x408816
40d332:	85 c0                	test   %eax,%eax
40d334:	74 1f                	je     0x40d355
40d336:	81 78 04 00 00 08 00 	cmpl   $0x80000,0x4(%eax)
40d33d:	75 16                	jne    0x40d355
40d33f:	8b 48 0c             	mov    0xc(%eax),%ecx
40d342:	ba 00 00 02 00       	mov    $0x20000,%edx
40d347:	6a 00                	push   $0x0
40d349:	6a 01                	push   $0x1
40d34b:	56                   	push   %esi
40d34c:	e8 d0 b5 ff ff       	call   0x408921
40d351:	8b f0                	mov    %eax,%esi
40d353:	eb 03                	jmp    0x40d358
40d355:	83 ce ff             	or     $0xffffffff,%esi
40d358:	83 fe 01             	cmp    $0x1,%esi
40d35b:	7e 6e                	jle    0x40d3cb
40d35d:	6a 00                	push   $0x0
40d35f:	8b d3                	mov    %ebx,%edx
40d361:	8b cf                	mov    %edi,%ecx
40d363:	e8 ae b4 ff ff       	call   0x408816
40d368:	85 c0                	test   %eax,%eax
40d36a:	74 16                	je     0x40d382
40d36c:	81 78 04 00 00 08 00 	cmpl   $0x80000,0x4(%eax)
40d373:	75 0d                	jne    0x40d382
40d375:	8b 48 0c             	mov    0xc(%eax),%ecx
40d378:	8d 56 ff             	lea    -0x1(%esi),%edx
40d37b:	e8 aa ba ff ff       	call   0x408e2a
40d380:	eb 03                	jmp    0x40d385
40d382:	83 c8 ff             	or     $0xffffffff,%eax
40d385:	ff b5 f4 f9 ff ff    	push   -0x60c(%ebp)
40d38b:	69 f0 dc 04 00 00    	imul   $0x4dc,%eax,%esi
40d391:	b9 37 01 00 00       	mov    $0x137,%ecx
40d396:	81 ec dc 04 00 00    	sub    $0x4dc,%esp
40d39c:	89 85 f8 f9 ff ff    	mov    %eax,-0x608(%ebp)
40d3a2:	8b fc                	mov    %esp,%edi
40d3a4:	03 b5 e8 f9 ff ff    	add    -0x618(%ebp),%esi
40d3aa:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40d3ac:	8b b5 ec f9 ff ff    	mov    -0x614(%ebp),%esi
40d3b2:	8b d6                	mov    %esi,%edx
40d3b4:	8b 8d f0 f9 ff ff    	mov    -0x610(%ebp),%ecx
40d3ba:	e8 63 fb ff ff       	call   0x40cf22
40d3bf:	85 c0                	test   %eax,%eax
40d3c1:	75 1d                	jne    0x40d3e0
40d3c3:	8b bd e4 f9 ff ff    	mov    -0x61c(%ebp),%edi
40d3c9:	eb 06                	jmp    0x40d3d1
40d3cb:	8b b5 ec f9 ff ff    	mov    -0x614(%ebp),%esi
40d3d1:	43                   	inc    %ebx
40d3d2:	3b 9d e0 f9 ff ff    	cmp    -0x620(%ebp),%ebx
40d3d8:	0f 82 14 fe ff ff    	jb     0x40d1f2
40d3de:	eb 38                	jmp    0x40d418
40d3e0:	6a 00                	push   $0x0
40d3e2:	ff 15 74 20 41 00    	call   *0x412074
40d3e8:	b9 30 12 40 00       	mov    $0x401230,%ecx
40d3ed:	e8 1a c3 ff ff       	call   0x40970c
40d3f2:	8b 85 f8 f9 ff ff    	mov    -0x608(%ebp),%eax
40d3f8:	eb 21                	jmp    0x40d41b
40d3fa:	ff 15 48 20 41 00    	call   *0x412048
40d400:	85 c0                	test   %eax,%eax
40d402:	75 0f                	jne    0x40d413
40d404:	68 2b 04 00 00       	push   $0x42b
40d409:	eb 02                	jmp    0x40d40d
40d40b:	6a 57                	push   $0x57
40d40d:	ff 15 74 20 41 00    	call   *0x412074
40d413:	e8 dc c3 ff ff       	call   0x4097f4
40d418:	83 c8 ff             	or     $0xffffffff,%eax
40d41b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d41e:	5f                   	pop    %edi
40d41f:	5e                   	pop    %esi
40d420:	33 cd                	xor    %ebp,%ecx
40d422:	5b                   	pop    %ebx
40d423:	e8 a8 18 00 00       	call   0x40ecd0
40d428:	c9                   	leave
40d429:	c2 10 00             	ret    $0x10
40d42c:	e8 1b 1a 00 00       	call   0x40ee4c
40d431:	cc                   	int3
40d432:	8b ff                	mov    %edi,%edi
40d434:	55                   	push   %ebp
40d435:	8b ec                	mov    %esp,%ebp
40d437:	81 ec 20 06 00 00    	sub    $0x620,%esp
40d43d:	a1 44 10 41 00       	mov    0x411044,%eax
40d442:	33 c5                	xor    %ebp,%eax
40d444:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d447:	53                   	push   %ebx
40d448:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d44b:	8d 85 fc f9 ff ff    	lea    -0x604(%ebp),%eax
40d451:	56                   	push   %esi
40d452:	8b 75 0c             	mov    0xc(%ebp),%esi
40d455:	57                   	push   %edi
40d456:	68 fe 01 00 00       	push   $0x1fe
40d45b:	8b fa                	mov    %edx,%edi
40d45d:	89 9d f0 f9 ff ff    	mov    %ebx,-0x610(%ebp)
40d463:	6a 00                	push   $0x0
40d465:	50                   	push   %eax
40d466:	89 bd ec f9 ff ff    	mov    %edi,-0x614(%ebp)
40d46c:	e8 53 1f 00 00       	call   0x40f3c4
40d471:	68 fe 01 00 00       	push   $0x1fe
40d476:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
40d47c:	6a 00                	push   $0x0
40d47e:	50                   	push   %eax
40d47f:	e8 40 1f 00 00       	call   0x40f3c4
40d484:	68 fe 01 00 00       	push   $0x1fe
40d489:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40d48f:	6a 00                	push   $0x0
40d491:	50                   	push   %eax
40d492:	e8 2d 1f 00 00       	call   0x40f3c4
40d497:	83 c4 24             	add    $0x24,%esp
40d49a:	85 ff                	test   %edi,%edi
40d49c:	0f 84 96 01 00 00    	je     0x40d638
40d4a2:	85 db                	test   %ebx,%ebx
40d4a4:	0f 84 8e 01 00 00    	je     0x40d638
40d4aa:	e8 cb b5 ff ff       	call   0x408a7a
40d4af:	8b d8                	mov    %eax,%ebx
40d4b1:	89 9d e0 f9 ff ff    	mov    %ebx,-0x620(%ebp)
40d4b7:	85 db                	test   %ebx,%ebx
40d4b9:	75 15                	jne    0x40d4d0
40d4bb:	ff 15 48 20 41 00    	call   *0x412048
40d4c1:	85 c0                	test   %eax,%eax
40d4c3:	0f 85 81 01 00 00    	jne    0x40d64a
40d4c9:	6a 08                	push   $0x8
40d4cb:	e9 74 01 00 00       	jmp    0x40d644
40d4d0:	53                   	push   %ebx
40d4d1:	8b d7                	mov    %edi,%edx
40d4d3:	e8 0c f9 ff ff       	call   0x40cde4
40d4d8:	85 f6                	test   %esi,%esi
40d4da:	74 10                	je     0x40d4ec
40d4dc:	83 3e 00             	cmpl   $0x0,(%esi)
40d4df:	75 0b                	jne    0x40d4ec
40d4e1:	e8 94 b5 ff ff       	call   0x408a7a
40d4e6:	89 06                	mov    %eax,(%esi)
40d4e8:	85 c0                	test   %eax,%eax
40d4ea:	74 cf                	je     0x40d4bb
40d4ec:	8b 8d f0 f9 ff ff    	mov    -0x610(%ebp),%ecx
40d4f2:	33 ff                	xor    %edi,%edi
40d4f4:	47                   	inc    %edi
40d4f5:	e8 be b8 ff ff       	call   0x408db8
40d4fa:	83 a5 f4 f9 ff ff 00 	andl   $0x0,-0x60c(%ebp)
40d501:	89 85 e4 f9 ff ff    	mov    %eax,-0x61c(%ebp)
40d507:	85 c0                	test   %eax,%eax
40d509:	0f 84 1a 01 00 00    	je     0x40d629
40d50f:	68 fe 00 00 00       	push   $0xfe
40d514:	ba 30 12 40 00       	mov    $0x401230,%edx
40d519:	8d 8d fc f9 ff ff    	lea    -0x604(%ebp),%ecx
40d51f:	e8 d2 ce ff ff       	call   0x40a3f6
40d524:	68 fe 00 00 00       	push   $0xfe
40d529:	ba 30 12 40 00       	mov    $0x401230,%edx
40d52e:	8d 8d fc fb ff ff    	lea    -0x404(%ebp),%ecx
40d534:	e8 bd ce ff ff       	call   0x40a3f6
40d539:	68 fe 00 00 00       	push   $0xfe
40d53e:	ba 30 12 40 00       	mov    $0x401230,%edx
40d543:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
40d549:	e8 a8 ce ff ff       	call   0x40a3f6
40d54e:	8b 95 f4 f9 ff ff    	mov    -0x60c(%ebp),%edx
40d554:	8b 8d f0 f9 ff ff    	mov    -0x610(%ebp),%ecx
40d55a:	e8 b0 b8 ff ff       	call   0x408e0f
40d55f:	85 c0                	test   %eax,%eax
40d561:	0f 84 c0 00 00 00    	je     0x40d627
40d567:	8d 8d fc f9 ff ff    	lea    -0x604(%ebp),%ecx
40d56d:	8b d3                	mov    %ebx,%edx
40d56f:	51                   	push   %ecx
40d570:	8d 8d fc fb ff ff    	lea    -0x404(%ebp),%ecx
40d576:	51                   	push   %ecx
40d577:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
40d57d:	51                   	push   %ecx
40d57e:	ff b5 ec f9 ff ff    	push   -0x614(%ebp)
40d584:	8b c8                	mov    %eax,%ecx
40d586:	e8 5b fb ff ff       	call   0x40d0e6
40d58b:	89 85 e8 f9 ff ff    	mov    %eax,-0x618(%ebp)
40d591:	83 f8 ff             	cmp    $0xffffffff,%eax
40d594:	0f 84 8d 00 00 00    	je     0x40d627
40d59a:	85 f6                	test   %esi,%esi
40d59c:	74 6e                	je     0x40d60c
40d59e:	8b 0e                	mov    (%esi),%ecx
40d5a0:	6a 04                	push   $0x4
40d5a2:	5a                   	pop    %edx
40d5a3:	e8 e3 b6 ff ff       	call   0x408c8b
40d5a8:	89 85 f8 f9 ff ff    	mov    %eax,-0x608(%ebp)
40d5ae:	83 f8 ff             	cmp    $0xffffffff,%eax
40d5b1:	0f 84 04 ff ff ff    	je     0x40d4bb
40d5b7:	ff b5 e8 f9 ff ff    	push   -0x618(%ebp)
40d5bd:	8b 0e                	mov    (%esi),%ecx
40d5bf:	8b d0                	mov    %eax,%edx
40d5c1:	6a 00                	push   $0x0
40d5c3:	e8 52 bd ff ff       	call   0x40931a
40d5c8:	8b 95 f8 f9 ff ff    	mov    -0x608(%ebp),%edx
40d5ce:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40d5d4:	51                   	push   %ecx
40d5d5:	8b 0e                	mov    (%esi),%ecx
40d5d7:	50                   	push   %eax
40d5d8:	57                   	push   %edi
40d5d9:	e8 0c bd ff ff       	call   0x4092ea
40d5de:	8b 95 f8 f9 ff ff    	mov    -0x608(%ebp),%edx
40d5e4:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
40d5ea:	51                   	push   %ecx
40d5eb:	8b 0e                	mov    (%esi),%ecx
40d5ed:	50                   	push   %eax
40d5ee:	6a 02                	push   $0x2
40d5f0:	e8 f5 bc ff ff       	call   0x4092ea
40d5f5:	8b 95 f8 f9 ff ff    	mov    -0x608(%ebp),%edx
40d5fb:	8d 85 fc f9 ff ff    	lea    -0x604(%ebp),%eax
40d601:	51                   	push   %ecx
40d602:	8b 0e                	mov    (%esi),%ecx
40d604:	50                   	push   %eax
40d605:	6a 03                	push   $0x3
40d607:	e8 de bc ff ff       	call   0x4092ea
40d60c:	8b 85 f4 f9 ff ff    	mov    -0x60c(%ebp),%eax
40d612:	40                   	inc    %eax
40d613:	89 85 f4 f9 ff ff    	mov    %eax,-0x60c(%ebp)
40d619:	3b 85 e4 f9 ff ff    	cmp    -0x61c(%ebp),%eax
40d61f:	0f 82 ea fe ff ff    	jb     0x40d50f
40d625:	eb 02                	jmp    0x40d629
40d627:	33 ff                	xor    %edi,%edi
40d629:	8d 8d e0 f9 ff ff    	lea    -0x620(%ebp),%ecx
40d62f:	e8 ac b4 ff ff       	call   0x408ae0
40d634:	8b c7                	mov    %edi,%eax
40d636:	eb 19                	jmp    0x40d651
40d638:	ff 15 48 20 41 00    	call   *0x412048
40d63e:	85 c0                	test   %eax,%eax
40d640:	75 08                	jne    0x40d64a
40d642:	6a 57                	push   $0x57
40d644:	ff 15 74 20 41 00    	call   *0x412074
40d64a:	e8 a5 c1 ff ff       	call   0x4097f4
40d64f:	33 c0                	xor    %eax,%eax
40d651:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d654:	5f                   	pop    %edi
40d655:	5e                   	pop    %esi
40d656:	33 cd                	xor    %ebp,%ecx
40d658:	5b                   	pop    %ebx
40d659:	e8 72 16 00 00       	call   0x40ecd0
40d65e:	c9                   	leave
40d65f:	c2 08 00             	ret    $0x8
40d662:	8b ff                	mov    %edi,%edi
40d664:	55                   	push   %ebp
40d665:	8b ec                	mov    %esp,%ebp
40d667:	81 ec fc 04 00 00    	sub    $0x4fc,%esp
40d66d:	a1 44 10 41 00       	mov    0x411044,%eax
40d672:	33 c5                	xor    %ebp,%eax
40d674:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d677:	8b 45 08             	mov    0x8(%ebp),%eax
40d67a:	53                   	push   %ebx
40d67b:	56                   	push   %esi
40d67c:	57                   	push   %edi
40d67d:	c7 85 18 fb ff ff 02 	movl   $0x2,-0x4e8(%ebp)
40d684:	00 00 00
40d687:	8d bd 1c fb ff ff    	lea    -0x4e4(%ebp),%edi
40d68d:	be a8 19 40 00       	mov    $0x4019a8,%esi
40d692:	89 85 10 fb ff ff    	mov    %eax,-0x4f0(%ebp)
40d698:	8b 45 0c             	mov    0xc(%ebp),%eax
40d69b:	33 db                	xor    %ebx,%ebx
40d69d:	68 bc 00 00 00       	push   $0xbc
40d6a2:	89 85 0c fb ff ff    	mov    %eax,-0x4f4(%ebp)
40d6a8:	8d 85 2a fb ff ff    	lea    -0x4d6(%ebp),%eax
40d6ae:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6af:	53                   	push   %ebx
40d6b0:	50                   	push   %eax
40d6b1:	89 95 14 fb ff ff    	mov    %edx,-0x4ec(%ebp)
40d6b7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6b8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6b9:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d6bb:	e8 04 1d 00 00       	call   0x40f3c4
40d6c0:	c7 85 e8 fb ff ff fc 	movl   $0xfc,-0x418(%ebp)
40d6c7:	00 00 00
40d6ca:	8d bd ec fb ff ff    	lea    -0x414(%ebp),%edi
40d6d0:	be b8 19 40 00       	mov    $0x4019b8,%esi
40d6d5:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
40d6db:	83 c4 0c             	add    $0xc,%esp
40d6de:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6df:	68 ba 00 00 00       	push   $0xba
40d6e4:	53                   	push   %ebx
40d6e5:	50                   	push   %eax
40d6e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6e9:	e8 d6 1c 00 00       	call   0x40f3c4
40d6ee:	c7 85 b8 fc ff ff 08 	movl   $0x8,-0x348(%ebp)
40d6f5:	00 00 00
40d6f8:	8d bd bc fc ff ff    	lea    -0x344(%ebp),%edi
40d6fe:	be c8 19 40 00       	mov    $0x4019c8,%esi
40d703:	8d 85 ca fc ff ff    	lea    -0x336(%ebp),%eax
40d709:	83 c4 0c             	add    $0xc,%esp
40d70c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d70d:	68 bc 00 00 00       	push   $0xbc
40d712:	53                   	push   %ebx
40d713:	50                   	push   %eax
40d714:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d715:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d716:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d718:	e8 a7 1c 00 00       	call   0x40f3c4
40d71d:	c7 85 88 fd ff ff 04 	movl   $0x4,-0x278(%ebp)
40d724:	00 00 00
40d727:	8d bd 8c fd ff ff    	lea    -0x274(%ebp),%edi
40d72d:	be d8 19 40 00       	mov    $0x4019d8,%esi
40d732:	8d 85 9a fd ff ff    	lea    -0x266(%ebp),%eax
40d738:	83 c4 0c             	add    $0xc,%esp
40d73b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d73c:	68 bc 00 00 00       	push   $0xbc
40d741:	53                   	push   %ebx
40d742:	50                   	push   %eax
40d743:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d744:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d745:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d747:	e8 78 1c 00 00       	call   0x40f3c4
40d74c:	c7 85 58 fe ff ff 0a 	movl   $0xa,-0x1a8(%ebp)
40d753:	00 00 00
40d756:	8d bd 5c fe ff ff    	lea    -0x1a4(%ebp),%edi
40d75c:	be e8 19 40 00       	mov    $0x4019e8,%esi
40d761:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
40d767:	83 c4 0c             	add    $0xc,%esp
40d76a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d76b:	68 ba 00 00 00       	push   $0xba
40d770:	53                   	push   %ebx
40d771:	50                   	push   %eax
40d772:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d773:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d774:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d775:	e8 4a 1c 00 00       	call   0x40f3c4
40d77a:	be f8 19 40 00       	mov    $0x4019f8,%esi
40d77f:	c7 85 28 ff ff ff 06 	movl   $0x6,-0xd8(%ebp)
40d786:	00 00 00
40d789:	8d bd 2c ff ff ff    	lea    -0xd4(%ebp),%edi
40d78f:	83 c4 0c             	add    $0xc,%esp
40d792:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d793:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d794:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d795:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d796:	68 ba 00 00 00       	push   $0xba
40d79b:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
40d7a1:	53                   	push   %ebx
40d7a2:	50                   	push   %eax
40d7a3:	e8 1c 1c 00 00       	call   0x40f3c4
40d7a8:	83 c4 0c             	add    $0xc,%esp
40d7ab:	39 9d 14 fb ff ff    	cmp    %ebx,-0x4ec(%ebp)
40d7b1:	0f 84 f4 00 00 00    	je     0x40d8ab
40d7b7:	39 9d 10 fb ff ff    	cmp    %ebx,-0x4f0(%ebp)
40d7bd:	0f 84 e8 00 00 00    	je     0x40d8ab
40d7c3:	8b b5 0c fb ff ff    	mov    -0x4f4(%ebp),%esi
40d7c9:	85 f6                	test   %esi,%esi