409276:	ff d6                	call   *%esi
409278:	85 c0                	test   %eax,%eax
40927a:	75 2f                	jne    0x4092ab
40927c:	57                   	push   %edi
40927d:	e8 b5 ff ff ff       	call   0x409237
409282:	84 c0                	test   %al,%al
409284:	75 38                	jne    0x4092be
409286:	68 00 08 00 00       	push   $0x800
40928b:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
409291:	50                   	push   %eax
409292:	57                   	push   %edi
409293:	e8 c2 14 00 00       	call   0x40a75a
409298:	84 c0                	test   %al,%al
40929a:	74 22                	je     0x4092be
40929c:	6a 00                	push   $0x0
40929e:	8d 85 00 f0 ff ff    	lea    -0x1000(%ebp),%eax
4092a4:	50                   	push   %eax
4092a5:	ff d6                	call   *%esi
4092a7:	85 c0                	test   %eax,%eax
4092a9:	74 13                	je     0x4092be
4092ab:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4092af:	74 09                	je     0x4092ba
4092b1:	ff 75 10             	push   0x10(%ebp)
4092b4:	57                   	push   %edi
4092b5:	e8 65 fd ff ff       	call   0x40901f
4092ba:	33 c0                	xor    %eax,%eax
4092bc:	eb 18                	jmp    0x4092d6
4092be:	ff 15 24 a2 42 00    	call   *0x42a224
4092c4:	83 f8 02             	cmp    $0x2,%eax
4092c7:	74 0a                	je     0x4092d3
4092c9:	83 f8 03             	cmp    $0x3,%eax
4092cc:	74 05                	je     0x4092d3
4092ce:	33 c0                	xor    %eax,%eax
4092d0:	40                   	inc    %eax
4092d1:	eb 03                	jmp    0x4092d6
4092d3:	6a 02                	push   $0x2
4092d5:	58                   	pop    %eax
4092d6:	5f                   	pop    %edi
4092d7:	5e                   	pop    %esi
4092d8:	c9                   	leave
4092d9:	c2 0c 00             	ret    $0xc
4092dc:	55                   	push   %ebp
4092dd:	8b ec                	mov    %esp,%ebp
4092df:	b8 04 10 00 00       	mov    $0x1004,%eax
4092e4:	e8 e7 11 01 00       	call   0x41a4d0
4092e9:	56                   	push   %esi
4092ea:	8b 75 08             	mov    0x8(%ebp),%esi
4092ed:	85 f6                	test   %esi,%esi
4092ef:	0f 84 b5 00 00 00    	je     0x4093aa
4092f5:	66 83 3e 00          	cmpw   $0x0,(%esi)
4092f9:	0f 84 ab 00 00 00    	je     0x4093aa
4092ff:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
409303:	53                   	push   %ebx
409304:	b3 01                	mov    $0x1,%bl
409306:	89 75 08             	mov    %esi,0x8(%ebp)
409309:	57                   	push   %edi
40930a:	8b 7d fc             	mov    -0x4(%ebp),%edi
40930d:	d1 ff                	sar    $1,%edi
40930f:	81 ff 00 08 00 00    	cmp    $0x800,%edi
409315:	73 62                	jae    0x409379
409317:	8b 45 08             	mov    0x8(%ebp),%eax
40931a:	0f b7 00             	movzwl (%eax),%eax
40931d:	50                   	push   %eax
40931e:	e8 b4 0c 00 00       	call   0x409fd7
409323:	84 c0                	test   %al,%al
409325:	74 41                	je     0x409368
409327:	8d 46 04             	lea    0x4(%esi),%eax
40932a:	39 45 08             	cmp    %eax,0x8(%ebp)
40932d:	75 07                	jne    0x409336
40932f:	66 83 7e 02 3a       	cmpw   $0x3a,0x2(%esi)
409334:	74 32                	je     0x409368
409336:	57                   	push   %edi
409337:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
40933d:	56                   	push   %esi
40933e:	50                   	push   %eax
40933f:	e8 6d 30 01 00       	call   0x41c3b1
409344:	83 c4 0c             	add    $0xc,%esp
409347:	33 c0                	xor    %eax,%eax
409349:	50                   	push   %eax
40934a:	66 89 84 7d fc ef ff 	mov    %ax,-0x1004(%ebp,%edi,2)
409351:	ff
409352:	6a 01                	push   $0x1
409354:	8d 85 fc ef ff ff    	lea    -0x1004(%ebp),%eax
40935a:	50                   	push   %eax
40935b:	e8 fb fe ff ff       	call   0x40925b
409360:	8b d8                	mov    %eax,%ebx
409362:	f7 db                	neg    %ebx
409364:	1a db                	sbb    %bl,%bl
409366:	fe c3                	inc    %bl
409368:	83 45 08 02          	addl   $0x2,0x8(%ebp)
40936c:	8b 45 08             	mov    0x8(%ebp),%eax
40936f:	83 45 fc 02          	addl   $0x2,-0x4(%ebp)
409373:	66 83 38 00          	cmpw   $0x0,(%eax)
409377:	75 91                	jne    0x40930a
409379:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
40937d:	5f                   	pop    %edi
40937e:	75 25                	jne    0x4093a5
409380:	56                   	push   %esi
409381:	e8 16 0c 00 00       	call   0x409f9c
409386:	0f b7 00             	movzwl (%eax),%eax
409389:	50                   	push   %eax
40938a:	e8 48 0c 00 00       	call   0x409fd7
40938f:	84 c0                	test   %al,%al
409391:	75 12                	jne    0x4093a5
409393:	6a 00                	push   $0x0
409395:	6a 01                	push   $0x1
409397:	56                   	push   %esi
409398:	e8 be fe ff ff       	call   0x40925b
40939d:	8b d8                	mov    %eax,%ebx
40939f:	f7 db                	neg    %ebx
4093a1:	1a db                	sbb    %bl,%bl
4093a3:	fe c3                	inc    %bl
4093a5:	8a c3                	mov    %bl,%al
4093a7:	5b                   	pop    %ebx
4093a8:	eb 02                	jmp    0x4093ac
4093aa:	32 c0                	xor    %al,%al
4093ac:	5e                   	pop    %esi
4093ad:	c9                   	leave
4093ae:	c2 08 00             	ret    $0x8
4093b1:	8b c1                	mov    %ecx,%eax
4093b3:	83 88 04 10 00 00 ff 	orl    $0xffffffff,0x1004(%eax)
4093ba:	33 c9                	xor    %ecx,%ecx
4093bc:	66 89 08             	mov    %cx,(%eax)
4093bf:	c6 80 00 10 00 00 01 	movb   $0x1,0x1000(%eax)
4093c6:	c3                   	ret
4093c7:	8b 81 04 10 00 00    	mov    0x1004(%ecx),%eax
4093cd:	83 f8 ff             	cmp    $0xffffffff,%eax
4093d0:	74 07                	je     0x4093d9
4093d2:	50                   	push   %eax
4093d3:	ff 15 64 a0 42 00    	call   *0x42a064
4093d9:	c3                   	ret
4093da:	56                   	push   %esi
4093db:	ff 74 24 08          	push   0x8(%esp)
4093df:	8b f1                	mov    %ecx,%esi
4093e1:	56                   	push   %esi
4093e2:	e8 ec 0d 01 00       	call   0x41a1d3
4093e7:	59                   	pop    %ecx
4093e8:	59                   	pop    %ecx
4093e9:	c6 86 00 10 00 00 01 	movb   $0x1,0x1000(%esi)
4093f0:	5e                   	pop    %esi
4093f1:	c2 04 00             	ret    $0x4
4093f4:	55                   	push   %ebp
4093f5:	8b ec                	mov    %esp,%ebp
4093f7:	b8 50 12 00 00       	mov    $0x1250,%eax
4093fc:	e8 cf 10 01 00       	call   0x41a4d0
409401:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
409405:	53                   	push   %ebx
409406:	56                   	push   %esi
409407:	8b 75 10             	mov    0x10(%ebp),%esi
40940a:	57                   	push   %edi
40940b:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
409411:	bf 00 08 00 00       	mov    $0x800,%edi
409416:	50                   	push   %eax
409417:	75 6a                	jne    0x409483
409419:	ff 75 0c             	push   0xc(%ebp)
40941c:	8b 1d 6c a0 42 00    	mov    0x42a06c,%ebx
409422:	ff d3                	call   *%ebx
409424:	89 45 08             	mov    %eax,0x8(%ebp)
409427:	83 f8 ff             	cmp    $0xffffffff,%eax
40942a:	0f 85 80 00 00 00    	jne    0x4094b0
409430:	57                   	push   %edi
409431:	8d 85 b0 ed ff ff    	lea    -0x1250(%ebp),%eax
409437:	50                   	push   %eax
409438:	ff 75 0c             	push   0xc(%ebp)
40943b:	e8 1a 13 00 00       	call   0x40a75a
409440:	84 c0                	test   %al,%al
409442:	74 18                	je     0x40945c
409444:	8d 85 b0 fd ff ff    	lea    -0x250(%ebp),%eax
40944a:	50                   	push   %eax
40944b:	8d 85 b0 ed ff ff    	lea    -0x1250(%ebp),%eax
409451:	50                   	push   %eax
409452:	ff d3                	call   *%ebx
409454:	89 45 08             	mov    %eax,0x8(%ebp)
409457:	83 f8 ff             	cmp    $0xffffffff,%eax
40945a:	75 54                	jne    0x4094b0
40945c:	ff 15 24 a2 42 00    	call   *0x42a224
409462:	83 f8 02             	cmp    $0x2,%eax
409465:	74 0f                	je     0x409476
409467:	83 f8 03             	cmp    $0x3,%eax
40946a:	74 0a                	je     0x409476
40946c:	83 f8 12             	cmp    $0x12,%eax
40946f:	74 05                	je     0x409476
409471:	33 c0                	xor    %eax,%eax
409473:	40                   	inc    %eax
409474:	eb 02                	jmp    0x409478
409476:	33 c0                	xor    %eax,%eax
409478:	88 86 44 10 00 00    	mov    %al,0x1044(%esi)
40947e:	e9 f8 00 00 00       	jmp    0x40957b
409483:	ff 75 08             	push   0x8(%ebp)
409486:	ff 15 68 a0 42 00    	call   *0x42a068
40948c:	85 c0                	test   %eax,%eax
40948e:	75 16                	jne    0x4094a6
409490:	83 4d 08 ff          	orl    $0xffffffff,0x8(%ebp)
409494:	ff 15 24 a2 42 00    	call   *0x42a224
40949a:	83 f8 12             	cmp    $0x12,%eax
40949d:	0f 95 c0             	setne  %al
4094a0:	88 86 44 10 00 00    	mov    %al,0x1044(%esi)
4094a6:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
4094aa:	0f 84 cb 00 00 00    	je     0x40957b
4094b0:	57                   	push   %edi
4094b1:	ff 75 0c             	push   0xc(%ebp)
4094b4:	56                   	push   %esi
4094b5:	e8 65 74 00 00       	call   0x41091f
4094ba:	57                   	push   %edi
4094bb:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
4094c1:	50                   	push   %eax
4094c2:	56                   	push   %esi
4094c3:	e8 48 0f 00 00       	call   0x40a410
4094c8:	6a 01                	push   $0x1
4094ca:	6a 00                	push   $0x0
4094cc:	6a 00                	push   $0x0
4094ce:	ff b5 cc fd ff ff    	push   -0x234(%ebp)
4094d4:	e8 d7 10 01 00       	call   0x41a5b0
4094d9:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
4094df:	33 ff                	xor    %edi,%edi
4094e1:	03 c1                	add    %ecx,%eax
4094e3:	89 86 00 10 00 00    	mov    %eax,0x1000(%esi)
4094e9:	8b 85 b0 fd ff ff    	mov    -0x250(%ebp),%eax
4094ef:	89 86 08 10 00 00    	mov    %eax,0x1008(%esi)
4094f5:	8b 85 b4 fd ff ff    	mov    -0x24c(%ebp),%eax
4094fb:	89 86 28 10 00 00    	mov    %eax,0x1028(%esi)
409501:	8b 85 b8 fd ff ff    	mov    -0x248(%ebp),%eax
409507:	89 86 2c 10 00 00    	mov    %eax,0x102c(%esi)
40950d:	8b 85 bc fd ff ff    	mov    -0x244(%ebp),%eax
409513:	89 86 30 10 00 00    	mov    %eax,0x1030(%esi)
409519:	8b 85 c0 fd ff ff    	mov    -0x240(%ebp),%eax
40951f:	89 86 34 10 00 00    	mov    %eax,0x1034(%esi)
409525:	8b 85 c4 fd ff ff    	mov    -0x23c(%ebp),%eax
40952b:	89 86 38 10 00 00    	mov    %eax,0x1038(%esi)
409531:	8b 85 c8 fd ff ff    	mov    -0x238(%ebp),%eax
409537:	89 86 3c 10 00 00    	mov    %eax,0x103c(%esi)
40953d:	8d 85 c4 fd ff ff    	lea    -0x23c(%ebp),%eax
409543:	13 d7                	adc    %edi,%edx
409545:	50                   	push   %eax
409546:	8d 8e 10 10 00 00    	lea    0x1010(%esi),%ecx
40954c:	89 96 04 10 00 00    	mov    %edx,0x1004(%esi)
409552:	e8 10 7b 00 00       	call   0x411067
409557:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
40955d:	50                   	push   %eax
40955e:	8d 8e 18 10 00 00    	lea    0x1018(%esi),%ecx
409564:	e8 fe 7a 00 00       	call   0x411067
409569:	8d 85 bc fd ff ff    	lea    -0x244(%ebp),%eax
40956f:	50                   	push   %eax
409570:	8d 8e 20 10 00 00    	lea    0x1020(%esi),%ecx
409576:	e8 ec 7a 00 00       	call   0x411067
40957b:	83 a6 40 10 00 00 00 	andl   $0x0,0x1040(%esi)
409582:	8b 45 08             	mov    0x8(%ebp),%eax
409585:	5f                   	pop    %edi
409586:	5e                   	pop    %esi
409587:	5b                   	pop    %ebx
409588:	c9                   	leave
409589:	c2 0c 00             	ret    $0xc
40958c:	53                   	push   %ebx
40958d:	55                   	push   %ebp
40958e:	56                   	push   %esi
40958f:	8b 74 24 10          	mov    0x10(%esp),%esi
409593:	57                   	push   %edi
409594:	8b f9                	mov    %ecx,%edi
409596:	33 db                	xor    %ebx,%ebx
409598:	e9 81 00 00 00       	jmp    0x40961e
40959d:	56                   	push   %esi
40959e:	57                   	push   %edi
40959f:	38 9f 00 10 00 00    	cmp    %bl,0x1000(%edi)
4095a5:	74 0f                	je     0x4095b6
4095a7:	6a ff                	push   $0xffffffff
4095a9:	e8 46 fe ff ff       	call   0x4093f4
4095ae:	89 87 04 10 00 00    	mov    %eax,0x1004(%edi)
4095b4:	eb 0b                	jmp    0x4095c1
4095b6:	ff b7 04 10 00 00    	push   0x1004(%edi)
4095bc:	e8 33 fe ff ff       	call   0x4093f4
4095c1:	83 f8 ff             	cmp    $0xffffffff,%eax
4095c4:	74 67                	je     0x40962d
4095c6:	8d ae 08 10 00 00    	lea    0x1008(%esi),%ebp
4095cc:	ff 75 00             	push   0x0(%ebp)
4095cf:	89 9e 40 10 00 00    	mov    %ebx,0x1040(%esi)
4095d5:	e8 d4 f9 ff ff       	call   0x408fae
4095da:	ff 75 00             	push   0x0(%ebp)
4095dd:	88 86 0c 10 00 00    	mov    %al,0x100c(%esi)
4095e3:	e8 de f9 ff ff       	call   0x408fc6
4095e8:	88 86 0d 10 00 00    	mov    %al,0x100d(%esi)
4095ee:	56                   	push   %esi
4095ef:	88 9f 00 10 00 00    	mov    %bl,0x1000(%edi)
4095f5:	e8 ac 0c 00 00       	call   0x40a2a6
4095fa:	8b e8                	mov    %eax,%ebp
4095fc:	68 30 a6 42 00       	push   $0x42a630
409601:	55                   	push   %ebp
409602:	e8 fa 0d 01 00       	call   0x41a401
409607:	59                   	pop    %ecx
409608:	59                   	pop    %ecx
409609:	85 c0                	test   %eax,%eax
40960b:	74 11                	je     0x40961e
40960d:	68 28 a6 42 00       	push   $0x42a628
409612:	55                   	push   %ebp
409613:	e8 e9 0d 01 00       	call   0x41a401
409618:	59                   	pop    %ecx
409619:	59                   	pop    %ecx
40961a:	85 c0                	test   %eax,%eax
40961c:	75 13                	jne    0x409631
40961e:	88 9e 44 10 00 00    	mov    %bl,0x1044(%esi)
409624:	66 39 1f             	cmp    %bx,(%edi)
409627:	0f 85 70 ff ff ff    	jne    0x40959d
40962d:	32 c0                	xor    %al,%al
40962f:	eb 02                	jmp    0x409633
409631:	b0 01                	mov    $0x1,%al
409633:	5f                   	pop    %edi
409634:	5e                   	pop    %esi
409635:	5d                   	pop    %ebp
409636:	5b                   	pop    %ebx
409637:	c2 08 00             	ret    $0x8
40963a:	56                   	push   %esi
40963b:	8b 74 24 0c          	mov    0xc(%esp),%esi
40963f:	ff 74 24 08          	push   0x8(%esp)
409643:	c6 86 44 10 00 00 00 	movb   $0x0,0x1044(%esi)
40964a:	e8 67 09 00 00       	call   0x409fb6
40964f:	84 c0                	test   %al,%al
409651:	74 04                	je     0x409657
409653:	32 c0                	xor    %al,%al
409655:	eb 43                	jmp    0x40969a
409657:	56                   	push   %esi
409658:	ff 74 24 0c          	push   0xc(%esp)
40965c:	6a ff                	push   $0xffffffff
40965e:	e8 91 fd ff ff       	call   0x4093f4
409663:	83 f8 ff             	cmp    $0xffffffff,%eax
409666:	74 eb                	je     0x409653
409668:	57                   	push   %edi
409669:	50                   	push   %eax
40966a:	ff 15 64 a0 42 00    	call   *0x42a064
409670:	83 a6 40 10 00 00 00 	andl   $0x0,0x1040(%esi)
409677:	8d be 08 10 00 00    	lea    0x1008(%esi),%edi
40967d:	ff 37                	push   (%edi)
40967f:	e8 2a f9 ff ff       	call   0x408fae
409684:	ff 37                	push   (%edi)
409686:	88 86 0c 10 00 00    	mov    %al,0x100c(%esi)
40968c:	e8 35 f9 ff ff       	call   0x408fc6
409691:	88 86 0d 10 00 00    	mov    %al,0x100d(%esi)
409697:	b0 01                	mov    $0x1,%al
409699:	5f                   	pop    %edi
40969a:	5e                   	pop    %esi
40969b:	c2 0c 00             	ret    $0xc
40969e:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
4096a3:	56                   	push   %esi
4096a4:	8b f1                	mov    %ecx,%esi
4096a6:	c6 46 08 00          	movb   $0x0,0x8(%esi)
4096aa:	74 1e                	je     0x4096ca
4096ac:	57                   	push   %edi
4096ad:	bf 03 80 00 00       	mov    $0x8003,%edi
4096b2:	57                   	push   %edi
4096b3:	e8 0d 04 01 00       	call   0x419ac5
4096b8:	57                   	push   %edi
4096b9:	6a 00                	push   $0x0