402149:	81 c2 00 00 14 00    	add    $0x140000,%edx
40214f:	3b 15 1c 87 4a 00    	cmp    0x4a871c,%edx
402155:	73 04                	jae    0x40215b
402157:	83 c0 10             	add    $0x10,%eax
40215a:	c3                   	ret
40215b:	81 3d 20 87 4a 00 f0 	cmpl   $0x13fff0,0x4a8720
402162:	ff 13 00
402165:	74 07                	je     0x40216e
402167:	a1 1c 87 4a 00       	mov    0x4a871c,%eax
40216c:	eb 02                	jmp    0x402170
40216e:	33 c0                	xor    %eax,%eax
402170:	c3                   	ret
402171:	8d 40 00             	lea    0x0(%eax),%eax
402174:	53                   	push   %ebx
402175:	56                   	push   %esi
402176:	8b d8                	mov    %eax,%ebx
402178:	83 c3 20             	add    $0x20,%ebx
40217b:	89 1a                	mov    %ebx,(%edx)
40217d:	8b 10                	mov    (%eax),%edx
40217f:	3b 42 10             	cmp    0x10(%edx),%eax
402182:	75 08                	jne    0x40218c
402184:	8b 5a 08             	mov    0x8(%edx),%ebx
402187:	3b 5a 0c             	cmp    0xc(%edx),%ebx
40218a:	76 19                	jbe    0x4021a5
40218c:	8b f0                	mov    %eax,%esi
40218e:	8b de                	mov    %esi,%ebx
402190:	83 eb 04             	sub    $0x4,%ebx
402193:	8b 1b                	mov    (%ebx),%ebx
402195:	83 e3 f0             	and    $0xfffffff0,%ebx
402198:	03 de                	add    %esi,%ebx
40219a:	0f b7 42 02          	movzwl 0x2(%edx),%eax
40219e:	2b d8                	sub    %eax,%ebx
4021a0:	89 19                	mov    %ebx,(%ecx)
4021a2:	5e                   	pop    %esi
4021a3:	5b                   	pop    %ebx
4021a4:	c3                   	ret
4021a5:	8b 42 08             	mov    0x8(%edx),%eax
4021a8:	48                   	dec    %eax
4021a9:	89 01                	mov    %eax,(%ecx)
4021ab:	5e                   	pop    %esi
4021ac:	5b                   	pop    %ebx
4021ad:	c3                   	ret
4021ae:	8b c0                	mov    %eax,%eax
4021b0:	57                   	push   %edi
4021b1:	89 d7                	mov    %edx,%edi
4021b3:	83 c0 01             	add    $0x1,%eax
4021b6:	ba 41 5f 70 89       	mov    $0x89705f41,%edx
4021bb:	f7 e2                	mul    %edx
4021bd:	c1 e8 1e             	shr    $0x1e,%eax
4021c0:	89 d1                	mov    %edx,%ecx
4021c2:	81 e2 ff ff ff 1f    	and    $0x1fffffff,%edx
4021c8:	c1 e9 1d             	shr    $0x1d,%ecx
4021cb:	8d 14 92             	lea    (%edx,%edx,4),%edx
4021ce:	01 c2                	add    %eax,%edx
4021d0:	89 c8                	mov    %ecx,%eax
4021d2:	83 c8 30             	or     $0x30,%eax
4021d5:	88 07                	mov    %al,(%edi)
4021d7:	89 d0                	mov    %edx,%eax
4021d9:	83 f9 01             	cmp    $0x1,%ecx
4021dc:	83 df ff             	sbb    $0xffffffff,%edi
4021df:	c1 e8 1c             	shr    $0x1c,%eax
4021e2:	81 e2 ff ff ff 0f    	and    $0xfffffff,%edx
4021e8:	09 c1                	or     %eax,%ecx
4021ea:	83 c8 30             	or     $0x30,%eax
4021ed:	88 07                	mov    %al,(%edi)
4021ef:	8d 04 92             	lea    (%edx,%edx,4),%eax
4021f2:	8d 14 92             	lea    (%edx,%edx,4),%edx
4021f5:	83 f9 01             	cmp    $0x1,%ecx
4021f8:	83 df ff             	sbb    $0xffffffff,%edi
4021fb:	c1 e8 1b             	shr    $0x1b,%eax
4021fe:	81 e2 ff ff ff 07    	and    $0x7ffffff,%edx
402204:	09 c1                	or     %eax,%ecx
402206:	83 c8 30             	or     $0x30,%eax
402209:	88 07                	mov    %al,(%edi)
40220b:	8d 04 92             	lea    (%edx,%edx,4),%eax
40220e:	8d 14 92             	lea    (%edx,%edx,4),%edx
402211:	83 f9 01             	cmp    $0x1,%ecx
402214:	83 df ff             	sbb    $0xffffffff,%edi
402217:	c1 e8 1a             	shr    $0x1a,%eax
40221a:	81 e2 ff ff ff 03    	and    $0x3ffffff,%edx
402220:	09 c1                	or     %eax,%ecx
402222:	83 c8 30             	or     $0x30,%eax
402225:	88 07                	mov    %al,(%edi)
402227:	8d 04 92             	lea    (%edx,%edx,4),%eax
40222a:	8d 14 92             	lea    (%edx,%edx,4),%edx
40222d:	83 f9 01             	cmp    $0x1,%ecx
402230:	83 df ff             	sbb    $0xffffffff,%edi
402233:	c1 e8 19             	shr    $0x19,%eax
402236:	81 e2 ff ff ff 01    	and    $0x1ffffff,%edx
40223c:	09 c1                	or     %eax,%ecx
40223e:	83 c8 30             	or     $0x30,%eax
402241:	88 07                	mov    %al,(%edi)
402243:	8d 04 92             	lea    (%edx,%edx,4),%eax
402246:	8d 14 92             	lea    (%edx,%edx,4),%edx
402249:	83 f9 01             	cmp    $0x1,%ecx
40224c:	83 df ff             	sbb    $0xffffffff,%edi
40224f:	c1 e8 18             	shr    $0x18,%eax
402252:	81 e2 ff ff ff 00    	and    $0xffffff,%edx
402258:	09 c1                	or     %eax,%ecx
40225a:	83 c8 30             	or     $0x30,%eax
40225d:	88 07                	mov    %al,(%edi)
40225f:	8d 04 92             	lea    (%edx,%edx,4),%eax
402262:	8d 14 92             	lea    (%edx,%edx,4),%edx
402265:	83 f9 01             	cmp    $0x1,%ecx
402268:	83 df ff             	sbb    $0xffffffff,%edi
40226b:	c1 e8 17             	shr    $0x17,%eax
40226e:	81 e2 ff ff 7f 00    	and    $0x7fffff,%edx
402274:	09 c1                	or     %eax,%ecx
402276:	83 c8 30             	or     $0x30,%eax
402279:	88 07                	mov    %al,(%edi)
40227b:	8d 04 92             	lea    (%edx,%edx,4),%eax
40227e:	8d 14 92             	lea    (%edx,%edx,4),%edx
402281:	83 f9 01             	cmp    $0x1,%ecx
402284:	83 df ff             	sbb    $0xffffffff,%edi
402287:	c1 e8 16             	shr    $0x16,%eax
40228a:	81 e2 ff ff 3f 00    	and    $0x3fffff,%edx
402290:	09 c1                	or     %eax,%ecx
402292:	83 c8 30             	or     $0x30,%eax
402295:	88 07                	mov    %al,(%edi)
402297:	8d 04 92             	lea    (%edx,%edx,4),%eax
40229a:	8d 14 92             	lea    (%edx,%edx,4),%edx
40229d:	83 f9 01             	cmp    $0x1,%ecx
4022a0:	83 df ff             	sbb    $0xffffffff,%edi
4022a3:	c1 e8 15             	shr    $0x15,%eax
4022a6:	81 e2 ff ff 1f 00    	and    $0x1fffff,%edx
4022ac:	09 c1                	or     %eax,%ecx
4022ae:	83 c8 30             	or     $0x30,%eax
4022b1:	88 07                	mov    %al,(%edi)
4022b3:	8d 04 92             	lea    (%edx,%edx,4),%eax
4022b6:	83 f9 01             	cmp    $0x1,%ecx
4022b9:	83 df ff             	sbb    $0xffffffff,%edi
4022bc:	c1 e8 14             	shr    $0x14,%eax
4022bf:	83 c8 30             	or     $0x30,%eax
4022c2:	88 07                	mov    %al,(%edi)
4022c4:	8d 47 01             	lea    0x1(%edi),%eax
4022c7:	5f                   	pop    %edi
4022c8:	c3                   	ret
4022c9:	8d 40 00             	lea    0x0(%eax),%eax
4022cc:	53                   	push   %ebx
4022cd:	56                   	push   %esi
4022ce:	8b f1                	mov    %ecx,%esi
4022d0:	8b da                	mov    %edx,%ebx
4022d2:	8b d3                	mov    %ebx,%edx
4022d4:	8b ce                	mov    %esi,%ecx
4022d6:	e8 11 0c 00 00       	call   0x402eec
4022db:	8b c3                	mov    %ebx,%eax
4022dd:	03 c6                	add    %esi,%eax
4022df:	5e                   	pop    %esi
4022e0:	5b                   	pop    %ebx
4022e1:	c3                   	ret
4022e2:	8b c0                	mov    %eax,%eax
4022e4:	55                   	push   %ebp
4022e5:	8b ec                	mov    %esp,%ebp
4022e7:	53                   	push   %ebx
4022e8:	56                   	push   %esi
4022e9:	8b f2                	mov    %edx,%esi
4022eb:	8b d8                	mov    %eax,%ebx
4022ed:	8b d3                	mov    %ebx,%edx
4022ef:	8b ca                	mov    %edx,%ecx
4022f1:	83 c1 b4             	add    $0xffffffb4,%ecx
4022f4:	8b 45 08             	mov    0x8(%ebp),%eax
4022f7:	8b 40 e4             	mov    -0x1c(%eax),%eax
4022fa:	3b c8                	cmp    %eax,%ecx
4022fc:	72 10                	jb     0x40230e
4022fe:	8b 4d 08             	mov    0x8(%ebp),%ecx
402301:	8b 4d 08             	mov    0x8(%ebp),%ecx
402304:	03 41 f0             	add    -0x10(%ecx),%eax
402307:	83 c2 df             	add    $0xffffffdf,%edx
40230a:	3b c2                	cmp    %edx,%eax
40230c:	73 14                	jae    0x402322
40230e:	6a 1c                	push   $0x1c
402310:	8b 45 08             	mov    0x8(%ebp),%eax
402313:	83 c0 e4             	add    $0xffffffe4,%eax
402316:	50                   	push   %eax
402317:	8b c3                	mov    %ebx,%eax
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