402319:	83 c0 b4             	add    $0xffffffb4,%eax
40231c:	50                   	push   %eax
40231d:	e8 22 f0 ff ff       	call   0x401344
402322:	81 fe e8 03 00 00    	cmp    $0x3e8,%esi
402328:	7d 3c                	jge    0x402366
40232a:	8b 45 08             	mov    0x8(%ebp),%eax
40232d:	8b 40 e4             	mov    -0x1c(%eax),%eax
402330:	8b 55 08             	mov    0x8(%ebp),%edx
402333:	03 42 f0             	add    -0x10(%edx),%eax
402336:	8b d3                	mov    %ebx,%edx
402338:	83 c2 df             	add    $0xffffffdf,%edx
40233b:	3b c2                	cmp    %edx,%eax
40233d:	76 27                	jbe    0x402366
40233f:	8b 45 08             	mov    0x8(%ebp),%eax
402342:	81 78 f4 00 10 00 00 	cmpl   $0x1000,-0xc(%eax)
402349:	75 1b                	jne    0x402366
40234b:	8b 45 08             	mov    0x8(%ebp),%eax
40234e:	f6 40 f8 e6          	testb  $0xe6,-0x8(%eax)
402352:	74 12                	je     0x402366
402354:	8b 45 08             	mov    0x8(%ebp),%eax
402357:	f6 40 f9 01          	testb  $0x1,-0x7(%eax)
40235b:	75 09                	jne    0x402366
40235d:	8b c3                	mov    %ebx,%eax
40235f:	83 c0 b4             	add    $0xffffffb4,%eax
402362:	3b 18                	cmp    (%eax),%ebx
402364:	74 04                	je     0x40236a
402366:	33 c0                	xor    %eax,%eax
402368:	eb 02                	jmp    0x40236c
40236a:	b0 01                	mov    $0x1,%al
40236c:	84 c0                	test   %al,%al
40236e:	74 25                	je     0x402395
402370:	83 c3 dc             	add    $0xffffffdc,%ebx
402373:	8b 1b                	mov    (%ebx),%ebx
402375:	85 db                	test   %ebx,%ebx
402377:	74 1a                	je     0x402393
402379:	8b 45 08             	mov    0x8(%ebp),%eax
40237c:	50                   	push   %eax
40237d:	8d 56 01             	lea    0x1(%esi),%edx
402380:	8b c3                	mov    %ebx,%eax
402382:	83 e8 b4             	sub    $0xffffffb4,%eax
402385:	e8 5a ff ff ff       	call   0x4022e4
40238a:	59                   	pop    %ecx
40238b:	84 c0                	test   %al,%al
40238d:	75 04                	jne    0x402393
40238f:	33 c0                	xor    %eax,%eax
402391:	eb 02                	jmp    0x402395
402393:	b0 01                	mov    $0x1,%al
402395:	5e                   	pop    %esi
402396:	5b                   	pop    %ebx
402397:	5d                   	pop    %ebp
402398:	c3                   	ret
402399:	8d 40 00             	lea    0x0(%eax),%eax
40239c:	55                   	push   %ebp
40239d:	8b ec                	mov    %esp,%ebp
40239f:	83 c4 e4             	add    $0xffffffe4,%esp
4023a2:	53                   	push   %ebx
4023a3:	8b 18                	mov    (%eax),%ebx
4023a5:	33 c0                	xor    %eax,%eax
4023a7:	89 45 f0             	mov    %eax,-0x10(%ebp)
4023aa:	81 fb 00 00 01 00    	cmp    $0x10000,%ebx
4023b0:	72 0f                	jb     0x4023c1
4023b2:	55                   	push   %ebp
4023b3:	33 d2                	xor    %edx,%edx
4023b5:	8b c3                	mov    %ebx,%eax
4023b7:	e8 28 ff ff ff       	call   0x4022e4
4023bc:	59                   	pop    %ecx
4023bd:	84 c0                	test   %al,%al
4023bf:	75 02                	jne    0x4023c3
4023c1:	33 db                	xor    %ebx,%ebx
4023c3:	8b c3                	mov    %ebx,%eax
4023c5:	5b                   	pop    %ebx
4023c6:	8b e5                	mov    %ebp,%esp
4023c8:	5d                   	pop    %ebp
4023c9:	c3                   	ret
4023ca:	8b c0                	mov    %eax,%eax
4023cc:	80 3d 4d 80 4a 00 00 	cmpb   $0x0,0x4a804d
4023d3:	74 34                	je     0x402409
4023d5:	eb 20                	jmp    0x4023f7
4023d7:	6a 00                	push   $0x0
4023d9:	e8 d2 ef ff ff       	call   0x4013b0
4023de:	b9 c0 a7 4a 00       	mov    $0x4aa7c0,%ecx
4023e3:	b2 01                	mov    $0x1,%dl
4023e5:	33 c0                	xor    %eax,%eax
4023e7:	e8 34 f0 ff ff       	call   0x401420
4023ec:	84 c0                	test   %al,%al
4023ee:	74 19                	je     0x402409
4023f0:	6a 0a                	push   $0xa
4023f2:	e8 b9 ef ff ff       	call   0x4013b0
4023f7:	b9 c0 a7 4a 00       	mov    $0x4aa7c0,%ecx
4023fc:	b2 01                	mov    $0x1,%dl
4023fe:	33 c0                	xor    %eax,%eax
402400:	e8 1b f0 ff ff       	call   0x401420
402405:	84 c0                	test   %al,%al
402407:	75 ce                	jne    0x4023d7
402409:	83 3d bc a7 4a 00 00 	cmpl   $0x0,0x4aa7bc
402410:	75 18                	jne    0x40242a
402412:	6a 04                	push   $0x4
402414:	68 00 10 00 00       	push   $0x1000
402419:	68 00 00 01 00       	push   $0x10000
40241e:	6a 00                	push   $0x0
402420:	e8 7b ef ff ff       	call   0x4013a0
402425:	a3 bc a7 4a 00       	mov    %eax,0x4aa7bc
40242a:	83 3d bc a7 4a 00 00 	cmpl   $0x0,0x4aa7bc
402431:	0f 95 c0             	setne  %al
402434:	c3                   	ret
402435:	8d 40 00             	lea    0x0(%eax),%eax
402438:	53                   	push   %ebx
402439:	8b d8                	mov    %eax,%ebx
40243b:	e8 8c ff ff ff       	call   0x4023cc
402440:	84 c0                	test   %al,%al
402442:	74 29                	je     0x40246d
402444:	a1 bc a7 4a 00       	mov    0x4aa7bc,%eax
402449:	81 38 fe 3f 00 00    	cmpl   $0x3ffe,(%eax)
40244f:	7d 1c                	jge    0x40246d
402451:	a1 bc a7 4a 00       	mov    0x4aa7bc,%eax
402456:	8b 00                	mov    (%eax),%eax
402458:	8b 15 bc a7 4a 00    	mov    0x4aa7bc,%edx
40245e:	89 5c 82 04          	mov    %ebx,0x4(%edx,%eax,4)
402462:	a1 bc a7 4a 00       	mov    0x4aa7bc,%eax
402467:	ff 00                	incl   (%eax)
402469:	b0 01                	mov    $0x1,%al
40246b:	eb 02                	jmp    0x40246f
40246d:	33 c0                	xor    %eax,%eax
40246f:	c6 05 c0 a7 4a 00 00 	movb   $0x0,0x4aa7c0
402476:	5b                   	pop    %ebx
402477:	c3                   	ret
402478:	53                   	push   %ebx
402479:	56                   	push   %esi
40247a:	57                   	push   %edi
40247b:	8b f0                	mov    %eax,%esi
40247d:	bf bc a7 4a 00       	mov    $0x4aa7bc,%edi
402482:	33 db                	xor    %ebx,%ebx
402484:	83 3f 00             	cmpl   $0x0,(%edi)
402487:	74 3f                	je     0x4024c8
402489:	e8 3e ff ff ff       	call   0x4023cc
40248e:	84 c0                	test   %al,%al
402490:	74 36                	je     0x4024c8
402492:	8b 07                	mov    (%edi),%eax
402494:	8b 10                	mov    (%eax),%edx
402496:	4a                   	dec    %edx
402497:	85 d2                	test   %edx,%edx
402499:	7c 26                	jl     0x4024c1
40249b:	42                   	inc    %edx
40249c:	33 c0                	xor    %eax,%eax
40249e:	8b 0f                	mov    (%edi),%ecx
4024a0:	3b 74 81 04          	cmp    0x4(%ecx,%eax,4),%esi
4024a4:	75 17                	jne    0x4024bd
4024a6:	8b 17                	mov    (%edi),%edx
4024a8:	8b 12                	mov    (%edx),%edx
4024aa:	8b 0f                	mov    (%edi),%ecx
4024ac:	8b 14 91             	mov    (%ecx,%edx,4),%edx
4024af:	8b 0f                	mov    (%edi),%ecx
4024b1:	89 54 81 04          	mov    %edx,0x4(%ecx,%eax,4)
4024b5:	8b 17                	mov    (%edi),%edx
4024b7:	ff 0a                	decl   (%edx)
4024b9:	b3 01                	mov    $0x1,%bl
4024bb:	eb 04                	jmp    0x4024c1
4024bd:	40                   	inc    %eax
4024be:	4a                   	dec    %edx
4024bf:	75 dd                	jne    0x40249e
4024c1:	c6 05 c0 a7 4a 00 00 	movb   $0x0,0x4aa7c0
4024c8:	8b c3                	mov    %ebx,%eax
4024ca:	5f                   	pop    %edi
4024cb:	5e                   	pop    %esi
4024cc:	5b                   	pop    %ebx
4024cd:	c3                   	ret
4024ce:	8b c0                	mov    %eax,%eax
4024d0:	55                   	push   %ebp
4024d1:	8b ec                	mov    %esp,%ebp
4024d3:	83 c4 e0             	add    $0xffffffe0,%esp
4024d6:	53                   	push   %ebx
4024d7:	56                   	push   %esi
4024d8:	57                   	push   %edi
4024d9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4024df:	8b 00                	mov    (%eax),%eax
4024e1:	81 e8 3c b0 49 00    	sub    $0x49b03c,%eax
4024e7:	c1 e8 05             	shr    $0x5,%eax
4024ea:	c1 e0 08             	shl    $0x8,%eax
4024ed:	8b 55 08             	mov    0x8(%ebp),%edx
4024f0:	8d b4 c2 00 48 fe ff 	lea    -0x1b800(%edx,%eax,8),%esi
4024f7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4024fa:	8d 55 e8             	lea    -0x18(%ebp),%edx
4024fd:	8b 45 fc             	mov    -0x4(%ebp),%eax
402500:	e8 6f fc ff ff       	call   0x402174
402505:	e9 fd 00 00 00       	jmp    0x402607
40250a:	8b 45 e8             	mov    -0x18(%ebp),%eax
40250d:	83 e8 04             	sub    $0x4,%eax
402510:	f6 00 01             	testb  $0x1,(%eax)
402513:	0f 85 e2 00 00 00    	jne    0x4025fb
402519:	8b 45 e8             	mov    -0x18(%ebp),%eax
40251c:	e8 57 ff ff ff       	call   0x402478
402521:	84 c0                	test   %al,%al
402523:	0f 85 d2 00 00 00    	jne    0x4025fb
402529:	8b 45 08             	mov    0x8(%ebp),%eax
40252c:	c6 80 ff 47 fe ff 00 	movb   $0x0,-0x1b801(%eax)
402533:	33 db                	xor    %ebx,%ebx
402535:	8b 45 e8             	mov    -0x18(%ebp),%eax
402538:	e8 5f fe ff ff       	call   0x40239c
40253d:	8b f8                	mov    %eax,%edi
40253f:	85 ff                	test   %edi,%edi
402541:	0f 85 88 00 00 00    	jne    0x4025cf
402547:	8b 45 e8             	mov    -0x18(%ebp),%eax
40254a:	81 38 00 01 00 00    	cmpl   $0x100,(%eax)
402550:	0f 83 a1 00 00 00    	jae    0x4025f7
402556:	8b 45 e8             	mov    -0x18(%ebp),%eax
402559:	83 c0 04             	add    $0x4,%eax
40255c:	8b 00                	mov    (%eax),%eax
40255e:	89 45 f4             	mov    %eax,-0xc(%ebp)
402561:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
402565:	0f 8e 8c 00 00 00    	jle    0x4025f7
40256b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40256e:	8b 00                	mov    (%eax),%eax
402570:	0f b7 40 02          	movzwl 0x2(%eax),%eax
402574:	83 e8 0d             	sub    $0xd,%eax
402577:	3b 45 f4             	cmp    -0xc(%ebp),%eax
40257a:	7e 7b                	jle    0x4025f7
40257c:	8b 45 e8             	mov    -0x18(%ebp),%eax
40257f:	83 c0 08             	add    $0x8,%eax
402582:	89 45 f0             	mov    %eax,-0x10(%ebp)
402585:	c6 45 ef 01          	movb   $0x1,-0x11(%ebp)
402589:	8b 45 f4             	mov    -0xc(%ebp),%eax
40258c:	85 c0                	test   %eax,%eax
40258e:	7e 2a                	jle    0x4025ba
402590:	89 45 e0             	mov    %eax,-0x20(%ebp)
402593:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
402597:	74 10                	je     0x4025a9
402599:	8b 45 f0             	mov    -0x10(%ebp),%eax
40259c:	80 38 20             	cmpb   $0x20,(%eax)
40259f:	72 08                	jb     0x4025a9
4025a1:	8b 45 f0             	mov    -0x10(%ebp),%eax
4025a4:	80 38 80             	cmpb   $0x80,(%eax)
4025a7:	72 04                	jb     0x4025ad
4025a9:	33 c0                	xor    %eax,%eax
4025ab:	eb 02                	jmp    0x4025af
4025ad:	b0 01                	mov    $0x1,%al
4025af:	88 45 ef             	mov    %al,-0x11(%ebp)
4025b2:	ff 45 f0             	incl   -0x10(%ebp)
4025b5:	ff 4d e0             	decl   -0x20(%ebp)
4025b8:	75 d9                	jne    0x402593
4025ba:	80 7d ef 00          	cmpb   $0x0,-0x11(%ebp)
4025be:	74 37                	je     0x4025f7
4025c0:	8b 45 f0             	mov    -0x10(%ebp),%eax
4025c3:	80 38 00             	cmpb   $0x0,(%eax)
4025c6:	75 2f                	jne    0x4025f7
4025c8:	bb 01 00 00 00       	mov    $0x1,%ebx
4025cd:	eb 28                	jmp    0x4025f7
4025cf:	bb 02 00 00 00       	mov    $0x2,%ebx
4025d4:	3b 3c de             	cmp    (%esi,%ebx,8),%edi
4025d7:	74 0f                	je     0x4025e8
4025d9:	83 3c de 00          	cmpl   $0x0,(%esi,%ebx,8)
4025dd:	74 09                	je     0x4025e8
4025df:	43                   	inc    %ebx
4025e0:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
4025e6:	7e ec                	jle    0x4025d4
4025e8:	81 fb ff 00 00 00    	cmp    $0xff,%ebx
4025ee:	7f 05                	jg     0x4025f5
4025f0:	89 3c de             	mov    %edi,(%esi,%ebx,8)
4025f3:	eb 02                	jmp    0x4025f7
4025f5:	33 db                	xor    %ebx,%ebx
4025f7:	ff 44 de 04          	incl   0x4(%esi,%ebx,8)
4025fb:	8b 45 fc             	mov    -0x4(%ebp),%eax
4025fe:	8b 00                	mov    (%eax),%eax
402600:	0f b7 40 02          	movzwl 0x2(%eax),%eax
402604:	01 45 e8             	add    %eax,-0x18(%ebp)
402607:	8b 45 e8             	mov    -0x18(%ebp),%eax
40260a:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
40260d:	0f 86 f7 fe ff ff    	jbe    0x40250a
402613:	5f                   	pop    %edi
402614:	5e                   	pop    %esi
402615:	5b                   	pop    %ebx
402616:	8b e5                	mov    %ebp,%esp
402618:	5d                   	pop    %ebp
402619:	c3                   	ret
40261a:	8b c0                	mov    %eax,%eax
40261c:	55                   	push   %ebp
40261d:	8b ec                	mov    %esp,%ebp
40261f:	50                   	push   %eax
402620:	b8 27 00 00 00       	mov    $0x27,%eax
402625:	81 c4 04 f0 ff ff    	add    $0xfffff004,%esp
40262b:	50                   	push   %eax
40262c:	48                   	dec    %eax
40262d:	75 f6                	jne    0x402625
40262f:	8b 45 fc             	mov    -0x4(%ebp),%eax
402632:	81 c4 dc f6 ff ff    	add    $0xfffff6dc,%esp
402638:	53                   	push   %ebx
402639:	56                   	push   %esi
40263a:	57                   	push   %edi
40263b:	8d 85 00 48 fe ff    	lea    -0x1b800(%ebp),%eax
402641:	33 c9                	xor    %ecx,%ecx
402643:	ba 00 b8 01 00       	mov    $0x1b800,%edx
402648:	e8 0b 0c 00 00       	call   0x403258
40264d:	8d 85 d8 07 fe ff    	lea    -0x1f828(%ebp),%eax
402653:	33 c9                	xor    %ecx,%ecx
402655:	ba 00 40 00 00       	mov    $0x4000,%edx
40265a:	e8 f9 0b 00 00       	call   0x403258
40265f:	33 c0                	xor    %eax,%eax
402661:	89 85 f8 47 fe ff    	mov    %eax,-0x1b808(%ebp)
402667:	c6 85 ff 47 fe ff 01 	movb   $0x1,-0x1b801(%ebp)
40266e:	8b 3d 0c 87 4a 00    	mov    0x4a870c,%edi
402674:	e9 82 00 00 00       	jmp    0x4026fb
402679:	8b c7                	mov    %edi,%eax
40267b:	e8 b4 fa ff ff       	call   0x402134
402680:	8b d8                	mov    %eax,%ebx
402682:	85 db                	test   %ebx,%ebx
402684:	74 72                	je     0x4026f8
402686:	8b c3                	mov    %ebx,%eax
402688:	83 e8 04             	sub    $0x4,%eax
40268b:	8b 30                	mov    (%eax),%esi
40268d:	f7 c6 01 00 00 00    	test   $0x1,%esi
402693:	75 56                	jne    0x4026eb
402695:	f7 c6 04 00 00 00    	test   $0x4,%esi
40269b:	74 0b                	je     0x4026a8
40269d:	55                   	push   %ebp
40269e:	8b c3                	mov    %ebx,%eax
4026a0:	e8 2b fe ff ff       	call   0x4024d0
4026a5:	59                   	pop    %ecx
4026a6:	eb 43                	jmp    0x4026eb
4026a8:	81 bd f8 47 fe ff 00 	cmpl   $0x1000,-0x1b808(%ebp)
4026af:	10 00 00
4026b2:	7d 37                	jge    0x4026eb
4026b4:	83 e6 f0             	and    $0xfffffff0,%esi
4026b7:	83 ee 04             	sub    $0x4,%esi
4026ba:	89 b5 ec 47 fe ff    	mov    %esi,-0x1b814(%ebp)
4026c0:	8b c3                	mov    %ebx,%eax
4026c2:	e8 b1 fd ff ff       	call   0x402478
4026c7:	84 c0                	test   %al,%al
4026c9:	75 20                	jne    0x4026eb
4026cb:	c6 85 ff 47 fe ff 00 	movb   $0x0,-0x1b801(%ebp)
4026d2:	8b 85 f8 47 fe ff    	mov    -0x1b808(%ebp),%eax
4026d8:	8b 95 ec 47 fe ff    	mov    -0x1b814(%ebp),%edx
4026de:	89 94 85 d8 07 fe ff 	mov    %edx,-0x1f828(%ebp,%eax,4)
4026e5:	ff 85 f8 47 fe ff    	incl   -0x1b808(%ebp)
4026eb:	8b c3                	mov    %ebx,%eax
4026ed:	e8 1e fa ff ff       	call   0x402110
4026f2:	8b d8                	mov    %eax,%ebx
4026f4:	85 db                	test   %ebx,%ebx
4026f6:	75 8e                	jne    0x402686
4026f8:	8b 7f 04             	mov    0x4(%edi),%edi
4026fb:	81 ff 08 87 4a 00    	cmp    $0x4a8708,%edi
402701:	0f 85 72 ff ff ff    	jne    0x402679
402707:	8b 1d b0 a7 4a 00    	mov    0x4aa7b0,%ebx
40270d:	eb 37                	jmp    0x402746
40270f:	8b c3                	mov    %ebx,%eax
402711:	83 c0 10             	add    $0x10,%eax
402714:	e8 5f fd ff ff       	call   0x402478
402719:	84 c0                	test   %al,%al
40271b:	75 26                	jne    0x402743
40271d:	c6 85 ff 47 fe ff 00 	movb   $0x0,-0x1b801(%ebp)
402724:	8b 73 0c             	mov    0xc(%ebx),%esi