409386:	5e                   	pop    %esi
409387:	5d                   	pop    %ebp
409388:	c2 04 00             	ret    $0x4
40938b:	8b ff                	mov    %edi,%edi
40938d:	55                   	push   %ebp
40938e:	8b ec                	mov    %esp,%ebp
409390:	51                   	push   %ecx
409391:	6a 01                	push   $0x1
409393:	ff 75 08             	push   0x8(%ebp)
409396:	68 00 00 02 00       	push   $0x20000
40939b:	e8 40 f6 ff ff       	call   0x4089e0
4093a0:	5d                   	pop    %ebp
4093a1:	c2 0c 00             	ret    $0xc
4093a4:	8b ff                	mov    %edi,%edi
4093a6:	55                   	push   %ebp
4093a7:	8b ec                	mov    %esp,%ebp
4093a9:	56                   	push   %esi
4093aa:	57                   	push   %edi
4093ab:	8b f9                	mov    %ecx,%edi
4093ad:	e8 b8 f6 ff ff       	call   0x408a6a
4093b2:	85 c0                	test   %eax,%eax
4093b4:	74 36                	je     0x4093ec
4093b6:	8b 75 08             	mov    0x8(%ebp),%esi
4093b9:	8b ce                	mov    %esi,%ecx
4093bb:	e8 aa f6 ff ff       	call   0x408a6a
4093c0:	85 c0                	test   %eax,%eax
4093c2:	74 28                	je     0x4093ec
4093c4:	6a 00                	push   $0x0
4093c6:	8b cf                	mov    %edi,%ecx
4093c8:	e8 49 f4 ff ff       	call   0x408816
4093cd:	85 c0                	test   %eax,%eax
4093cf:	74 1b                	je     0x4093ec
4093d1:	b9 00 00 08 00       	mov    $0x80000,%ecx
4093d6:	39 48 04             	cmp    %ecx,0x4(%eax)
4093d9:	74 06                	je     0x4093e1
4093db:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4093df:	75 0b                	jne    0x4093ec
4093e1:	89 70 0c             	mov    %esi,0xc(%eax)
4093e4:	89 48 04             	mov    %ecx,0x4(%eax)
4093e7:	33 c0                	xor    %eax,%eax
4093e9:	40                   	inc    %eax
4093ea:	eb 02                	jmp    0x4093ee
4093ec:	33 c0                	xor    %eax,%eax
4093ee:	5f                   	pop    %edi
4093ef:	5e                   	pop    %esi
4093f0:	5d                   	pop    %ebp
4093f1:	c2 04 00             	ret    $0x4
4093f4:	8b ff                	mov    %edi,%edi
4093f6:	55                   	push   %ebp
4093f7:	8b ec                	mov    %esp,%ebp
4093f9:	6a 00                	push   $0x0
4093fb:	e8 16 f4 ff ff       	call   0x408816
409400:	85 c0                	test   %eax,%eax
409402:	74 19                	je     0x40941d
409404:	81 78 04 00 00 08 00 	cmpl   $0x80000,0x4(%eax)
40940b:	75 10                	jne    0x40941d
40940d:	ff 75 0c             	push   0xc(%ebp)
409410:	8b 55 08             	mov    0x8(%ebp),%edx
409413:	8b 48 0c             	mov    0xc(%eax),%ecx
409416:	e8 89 ff ff ff       	call   0x4093a4
40941b:	eb 03                	jmp    0x409420
40941d:	83 c8 ff             	or     $0xffffffff,%eax
409420:	5d                   	pop    %ebp
409421:	c2 08 00             	ret    $0x8
409424:	8b ff                	mov    %edi,%edi
409426:	55                   	push   %ebp
409427:	8b ec                	mov    %esp,%ebp
409429:	8b 45 0c             	mov    0xc(%ebp),%eax
40942c:	56                   	push   %esi
40942d:	33 f6                	xor    %esi,%esi
40942f:	85 c0                	test   %eax,%eax
409431:	74 07                	je     0x40943a
409433:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
409438:	76 05                	jbe    0x40943f
40943a:	be 57 00 07 80       	mov    $0x80070057,%esi
40943f:	85 f6                	test   %esi,%esi
409441:	78 37                	js     0x40947a
409443:	53                   	push   %ebx
409444:	8b 5d 08             	mov    0x8(%ebp),%ebx
409447:	33 f6                	xor    %esi,%esi
409449:	57                   	push   %edi
40944a:	8d 78 ff             	lea    -0x1(%eax),%edi
40944d:	8d 45 14             	lea    0x14(%ebp),%eax
409450:	50                   	push   %eax
409451:	ff 75 10             	push   0x10(%ebp)
409454:	57                   	push   %edi
409455:	53                   	push   %ebx
409456:	ff 15 d4 22 41 00    	call   *0x4122d4
40945c:	83 c4 10             	add    $0x10,%esp
40945f:	85 c0                	test   %eax,%eax
409461:	78 08                	js     0x40946b
409463:	3b c7                	cmp    %edi,%eax
409465:	77 04                	ja     0x40946b
409467:	75 0d                	jne    0x409476
409469:	eb 05                	jmp    0x409470
40946b:	be 7a 00 07 80       	mov    $0x8007007a,%esi
409470:	33 c0                	xor    %eax,%eax
409472:	66 89 04 7b          	mov    %ax,(%ebx,%edi,2)
409476:	5f                   	pop    %edi
409477:	5b                   	pop    %ebx
409478:	eb 0c                	jmp    0x409486
40947a:	85 c0                	test   %eax,%eax
40947c:	74 08                	je     0x409486
40947e:	8b 4d 08             	mov    0x8(%ebp),%ecx
409481:	33 c0                	xor    %eax,%eax
409483:	66 89 01             	mov    %ax,(%ecx)
409486:	8b c6                	mov    %esi,%eax
409488:	5e                   	pop    %esi
409489:	5d                   	pop    %ebp
40948a:	c3                   	ret
40948b:	8b ff                	mov    %edi,%edi
40948d:	56                   	push   %esi
40948e:	33 f6                	xor    %esi,%esi
409490:	46                   	inc    %esi
409491:	39 35 b8 14 41 00    	cmp    %esi,0x4114b8
409497:	75 2b                	jne    0x4094c4
409499:	8b 0d b0 14 41 00    	mov    0x4114b0,%ecx
40949f:	e8 c6 f5 ff ff       	call   0x408a6a
4094a4:	85 c0                	test   %eax,%eax
4094a6:	0f 85 91 00 00 00    	jne    0x40953d
4094ac:	ff 15 48 20 41 00    	call   *0x412048
4094b2:	85 c0                	test   %eax,%eax
4094b4:	0f 85 99 00 00 00    	jne    0x409553
4094ba:	68 2b 04 00 00       	push   $0x42b
4094bf:	e9 89 00 00 00       	jmp    0x40954d
4094c4:	83 3d b0 14 41 00 00 	cmpl   $0x0,0x4114b0
4094cb:	75 df                	jne    0x4094ac
4094cd:	e8 a8 f5 ff ff       	call   0x408a7a
4094d2:	8b c8                	mov    %eax,%ecx
4094d4:	89 0d b0 14 41 00    	mov    %ecx,0x4114b0
4094da:	e8 8b f5 ff ff       	call   0x408a6a
4094df:	85 c0                	test   %eax,%eax
4094e1:	74 5e                	je     0x409541
4094e3:	51                   	push   %ecx
4094e4:	ba 8c 18 40 00       	mov    $0x40188c,%edx
4094e9:	e8 11 f6 ff ff       	call   0x408aff
4094ee:	85 c0                	test   %eax,%eax
4094f0:	75 4f                	jne    0x409541
4094f2:	8b 0d b0 14 41 00    	mov    0x4114b0,%ecx
4094f8:	6a 03                	push   $0x3
4094fa:	5a                   	pop    %edx
4094fb:	e8 8b f7 ff ff       	call   0x408c8b
409500:	3b c6                	cmp    %esi,%eax
409502:	75 3d                	jne    0x409541
409504:	8b 0d b0 14 41 00    	mov    0x4114b0,%ecx
40950a:	6a 03                	push   $0x3
40950c:	5a                   	pop    %edx
40950d:	e8 79 f7 ff ff       	call   0x408c8b
409512:	83 f8 02             	cmp    $0x2,%eax
409515:	75 2a                	jne    0x409541
409517:	8b 0d b0 14 41 00    	mov    0x4114b0,%ecx
40951d:	6a 03                	push   $0x3
40951f:	5a                   	pop    %edx
409520:	e8 66 f7 ff ff       	call   0x408c8b
409525:	83 f8 03             	cmp    $0x3,%eax
409528:	75 17                	jne    0x409541
40952a:	6a 00                	push   $0x0
40952c:	89 35 b8 14 41 00    	mov    %esi,0x4114b8
409532:	ff 15 cc 20 41 00    	call   *0x4120cc
409538:	66 85 c0             	test   %ax,%ax
40953b:	74 16                	je     0x409553
40953d:	8b c6                	mov    %esi,%eax
40953f:	5e                   	pop    %esi
409540:	c3                   	ret
409541:	ff 15 48 20 41 00    	call   *0x412048
409547:	85 c0                	test   %eax,%eax
409549:	75 08                	jne    0x409553
40954b:	6a 08                	push   $0x8
40954d:	ff 15 74 20 41 00    	call   *0x412074
409553:	33 c0                	xor    %eax,%eax
409555:	5e                   	pop    %esi
409556:	c3                   	ret
409557:	83 3d b8 14 41 00 00 	cmpl   $0x0,0x4114b8
40955e:	56                   	push   %esi
40955f:	8b f1                	mov    %ecx,%esi
409561:	74 3c                	je     0x40959f
409563:	6a 03                	push   $0x3
409565:	5a                   	pop    %edx
409566:	e8 5b f8 ff ff       	call   0x408dc6
40956b:	3b c6                	cmp    %esi,%eax
40956d:	76 30                	jbe    0x40959f
40956f:	56                   	push   %esi
409570:	e8 d4 fd ff ff       	call   0x409349
409575:	85 c0                	test   %eax,%eax
409577:	74 26                	je     0x40959f
409579:	56                   	push   %esi
40957a:	e8 bb fa ff ff       	call   0x40903a
40957f:	8b f0                	mov    %eax,%esi
409581:	85 f6                	test   %esi,%esi
409583:	74 1a                	je     0x40959f
409585:	6a 07                	push   $0x7
409587:	68 84 18 40 00       	push   $0x401884
40958c:	56                   	push   %esi
40958d:	ff 15 d8 22 41 00    	call   *0x4122d8
409593:	83 c4 0c             	add    $0xc,%esp
409596:	85 c0                	test   %eax,%eax
409598:	75 05                	jne    0x40959f
40959a:	8b 46 0c             	mov    0xc(%esi),%eax
40959d:	5e                   	pop    %esi
40959e:	c3                   	ret
40959f:	33 c0                	xor    %eax,%eax
4095a1:	5e                   	pop    %esi
4095a2:	c3                   	ret
4095a3:	8b ff                	mov    %edi,%edi
4095a5:	55                   	push   %ebp
4095a6:	8b ec                	mov    %esp,%ebp
4095a8:	51                   	push   %ecx
4095a9:	51                   	push   %ecx
4095aa:	89 55 f8             	mov    %edx,-0x8(%ebp)
4095ad:	53                   	push   %ebx
4095ae:	8b d9                	mov    %ecx,%ebx
4095b0:	56                   	push   %esi
4095b1:	57                   	push   %edi
4095b2:	8b 7d 08             	mov    0x8(%ebp),%edi
4095b5:	85 d2                	test   %edx,%edx
4095b7:	75 04                	jne    0x4095bd
4095b9:	85 ff                	test   %edi,%edi
4095bb:	74 50                	je     0x40960d
4095bd:	e8 c9 fe ff ff       	call   0x40948b
4095c2:	85 c0                	test   %eax,%eax
4095c4:	74 47                	je     0x40960d
4095c6:	6a 03                	push   $0x3
4095c8:	5a                   	pop    %edx
4095c9:	e8 f8 f7 ff ff       	call   0x408dc6
4095ce:	8b f0                	mov    %eax,%esi
4095d0:	3b f3                	cmp    %ebx,%esi
4095d2:	77 23                	ja     0x4095f7
4095d4:	8b 0d b0 14 41 00    	mov    0x4114b0,%ecx
4095da:	6a 03                	push   $0x3
4095dc:	5a                   	pop    %edx
4095dd:	e8 09 f8 ff ff       	call   0x408deb
4095e2:	85 c0                	test   %eax,%eax
4095e4:	74 27                	je     0x40960d
4095e6:	8b d3                	mov    %ebx,%edx
4095e8:	8b c8                	mov    %eax,%ecx
4095ea:	2b d6                	sub    %esi,%edx
4095ec:	42                   	inc    %edx
4095ed:	e8 0e f7 ff ff       	call   0x408d00
4095f2:	83 f8 ff             	cmp    $0xffffffff,%eax
4095f5:	74 16                	je     0x40960d
4095f7:	53                   	push   %ebx
4095f8:	e8 4c fd ff ff       	call   0x409349
4095fd:	85 c0                	test   %eax,%eax
4095ff:	74 15                	je     0x409616
409601:	53                   	push   %ebx
409602:	e8 33 fa ff ff       	call   0x40903a
409607:	8b f0                	mov    %eax,%esi
409609:	85 f6                	test   %esi,%esi
40960b:	75 45                	jne    0x409652
40960d:	33 c0                	xor    %eax,%eax
40960f:	5f                   	pop    %edi
409610:	5e                   	pop    %esi
409611:	5b                   	pop    %ebx
409612:	c9                   	leave
409613:	c2 08 00             	ret    $0x8
409616:	6a 10                	push   $0x10
409618:	59                   	pop    %ecx
409619:	e8 4c 16 00 00       	call   0x40ac6a
40961e:	8b f0                	mov    %eax,%esi
409620:	89 75 fc             	mov    %esi,-0x4(%ebp)
409623:	85 f6                	test   %esi,%esi
409625:	74 e6                	je     0x40960d
409627:	83 66 08 00          	andl   $0x0,0x8(%esi)
40962b:	ba 84 18 40 00       	mov    $0x401884,%edx
409630:	83 66 0c 00          	andl   $0x0,0xc(%esi)
409634:	8b ce                	mov    %esi,%ecx
409636:	6a 07                	push   $0x7
409638:	e8 5b 0d 00 00       	call   0x40a398
40963d:	56                   	push   %esi
40963e:	53                   	push   %ebx
40963f:	e8 46 fc ff ff       	call   0x40928a
409644:	85 c0                	test   %eax,%eax
409646:	75 0a                	jne    0x409652
409648:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40964b:	e8 76 15 00 00       	call   0x40abc6
409650:	eb bb                	jmp    0x40960d
409652:	6a 07                	push   $0x7
409654:	68 84 18 40 00       	push   $0x401884
409659:	56                   	push   %esi
40965a:	ff 15 d8 22 41 00    	call   *0x4122d8
409660:	83 c4 0c             	add    $0xc,%esp
409663:	85 c0                	test   %eax,%eax
409665:	75 a6                	jne    0x40960d
409667:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40966a:	85 db                	test   %ebx,%ebx
40966c:	74 0a                	je     0x409678
40966e:	8b cb                	mov    %ebx,%ecx
409670:	e8 16 0e 00 00       	call   0x40a48b
409675:	8d 78 01             	lea    0x1(%eax),%edi
409678:	8b 46 08             	mov    0x8(%esi),%eax
40967b:	3b f8                	cmp    %eax,%edi
40967d:	77 11                	ja     0x409690
40967f:	81 ff 00 01 00 00    	cmp    $0x100,%edi
409685:	76 25                	jbe    0x4096ac
409687:	8d 14 3f             	lea    (%edi,%edi,1),%edx
40968a:	3b d0                	cmp    %eax,%edx
40968c:	73 1e                	jae    0x4096ac
40968e:	eb 03                	jmp    0x409693
409690:	8d 14 3f             	lea    (%edi,%edi,1),%edx
409693:	85 c0                	test   %eax,%eax
409695:	75 2e                	jne    0x4096c5
409697:	8b ca                	mov    %edx,%ecx
409699:	e8 cc 15 00 00       	call   0x40ac6a
40969e:	89 46 0c             	mov    %eax,0xc(%esi)
4096a1:	85 c0                	test   %eax,%eax
4096a3:	0f 84 64 ff ff ff    	je     0x40960d
4096a9:	89 7e 08             	mov    %edi,0x8(%esi)
4096ac:	8b 4e 0c             	mov    0xc(%esi),%ecx
4096af:	85 c9                	test   %ecx,%ecx
4096b1:	0f 84 56 ff ff ff    	je     0x40960d
4096b7:	85 db                	test   %ebx,%ebx
4096b9:	74 14                	je     0x4096cf
4096bb:	57                   	push   %edi
4096bc:	8b d3                	mov    %ebx,%edx
4096be:	e8 33 0d 00 00       	call   0x40a3f6
4096c3:	eb 1f                	jmp    0x4096e4
4096c5:	8d 4e 0c             	lea    0xc(%esi),%ecx
4096c8:	e8 47 16 00 00       	call   0x40ad14
4096cd:	eb d2                	jmp    0x4096a1
4096cf:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4096d3:	75 0f                	jne    0x4096e4
4096d5:	8d 04 3f             	lea    (%edi,%edi,1),%eax
4096d8:	50                   	push   %eax
4096d9:	6a 00                	push   $0x0
4096db:	51                   	push   %ecx
4096dc:	e8 e3 5c 00 00       	call   0x40f3c4
4096e1:	83 c4 0c             	add    $0xc,%esp
4096e4:	8b 46 0c             	mov    0xc(%esi),%eax
4096e7:	e9 23 ff ff ff       	jmp    0x40960f
4096ec:	8b 0d b0 14 41 00    	mov    0x4114b0,%ecx
4096f2:	85 c9                	test   %ecx,%ecx
4096f4:	74 10                	je     0x409706
4096f6:	e8 6f f3 ff ff       	call   0x408a6a
4096fb:	85 c0                	test   %eax,%eax
4096fd:	74 07                	je     0x409706
4096ff:	33 d2                	xor    %edx,%edx
409701:	e9 09 f7 ff ff       	jmp    0x408e0f
409706:	b8 8c 18 40 00       	mov    $0x40188c,%eax
40970b:	c3                   	ret
40970c:	8b ff                	mov    %edi,%edi
40970e:	56                   	push   %esi
40970f:	57                   	push   %edi
409710:	8b f1                	mov    %ecx,%esi
409712:	ff 15 48 20 41 00    	call   *0x412048
409718:	8b f8                	mov    %eax,%edi
40971a:	85 f6                	test   %esi,%esi
40971c:	75 17                	jne    0x409735
40971e:	ff 15 48 20 41 00    	call   *0x412048
409724:	85 c0                	test   %eax,%eax
409726:	75 08                	jne    0x409730