402166:	8b d8                	mov    %eax,%ebx
402168:	83 c3 20             	add    $0x20,%ebx
40216b:	89 1a                	mov    %ebx,(%edx)
40216d:	8b 10                	mov    (%eax),%edx
40216f:	3b 42 10             	cmp    0x10(%edx),%eax
402172:	75 08                	jne    0x40217c
402174:	8b 5a 08             	mov    0x8(%edx),%ebx
402177:	3b 5a 0c             	cmp    0xc(%edx),%ebx
40217a:	76 19                	jbe    0x402195
40217c:	8b f0                	mov    %eax,%esi
40217e:	8b de                	mov    %esi,%ebx
402180:	83 eb 04             	sub    $0x4,%ebx
402183:	8b 1b                	mov    (%ebx),%ebx
402185:	83 e3 f0             	and    $0xfffffff0,%ebx
402188:	03 de                	add    %esi,%ebx
40218a:	0f b7 42 02          	movzwl 0x2(%edx),%eax
40218e:	2b d8                	sub    %eax,%ebx
402190:	89 19                	mov    %ebx,(%ecx)
402192:	5e                   	pop    %esi
402193:	5b                   	pop    %ebx
402194:	c3                   	ret
402195:	8b 42 08             	mov    0x8(%edx),%eax
402198:	48                   	dec    %eax
402199:	89 01                	mov    %eax,(%ecx)
40219b:	5e                   	pop    %esi
40219c:	5b                   	pop    %ebx
40219d:	c3                   	ret
40219e:	8b c0                	mov    %eax,%eax
4021a0:	57                   	push   %edi
4021a1:	89 d7                	mov    %edx,%edi
4021a3:	83 c0 01             	add    $0x1,%eax
4021a6:	ba 41 5f 70 89       	mov    $0x89705f41,%edx
4021ab:	f7 e2                	mul    %edx
4021ad:	c1 e8 1e             	shr    $0x1e,%eax
4021b0:	89 d1                	mov    %edx,%ecx
4021b2:	81 e2 ff ff ff 1f    	and    $0x1fffffff,%edx
4021b8:	c1 e9 1d             	shr    $0x1d,%ecx
4021bb:	8d 14 92             	lea    (%edx,%edx,4),%edx
4021be:	01 c2                	add    %eax,%edx
4021c0:	89 c8                	mov    %ecx,%eax
4021c2:	83 c8 30             	or     $0x30,%eax
4021c5:	88 07                	mov    %al,(%edi)
4021c7:	89 d0                	mov    %edx,%eax
4021c9:	83 f9 01             	cmp    $0x1,%ecx
4021cc:	83 df ff             	sbb    $0xffffffff,%edi
4021cf:	c1 e8 1c             	shr    $0x1c,%eax
4021d2:	81 e2 ff ff ff 0f    	and    $0xfffffff,%edx
4021d8:	09 c1                	or     %eax,%ecx
4021da:	83 c8 30             	or     $0x30,%eax
4021dd:	88 07                	mov    %al,(%edi)
4021df:	8d 04 92             	lea    (%edx,%edx,4),%eax
4021e2:	8d 14 92             	lea    (%edx,%edx,4),%edx
4021e5:	83 f9 01             	cmp    $0x1,%ecx
4021e8:	83 df ff             	sbb    $0xffffffff,%edi
4021eb:	c1 e8 1b             	shr    $0x1b,%eax
4021ee:	81 e2 ff ff ff 07    	and    $0x7ffffff,%edx
4021f4:	09 c1                	or     %eax,%ecx
4021f6:	83 c8 30             	or     $0x30,%eax
4021f9:	88 07                	mov    %al,(%edi)
4021fb:	8d 04 92             	lea    (%edx,%edx,4),%eax
4021fe:	8d 14 92             	lea    (%edx,%edx,4),%edx
402201:	83 f9 01             	cmp    $0x1,%ecx
402204:	83 df ff             	sbb    $0xffffffff,%edi
402207:	c1 e8 1a             	shr    $0x1a,%eax
40220a:	81 e2 ff ff ff 03    	and    $0x3ffffff,%edx
402210:	09 c1                	or     %eax,%ecx
402212:	83 c8 30             	or     $0x30,%eax
402215:	88 07                	mov    %al,(%edi)
402217:	8d 04 92             	lea    (%edx,%edx,4),%eax
40221a:	8d 14 92             	lea    (%edx,%edx,4),%edx
40221d:	83 f9 01             	cmp    $0x1,%ecx
402220:	83 df ff             	sbb    $0xffffffff,%edi
402223:	c1 e8 19             	shr    $0x19,%eax
402226:	81 e2 ff ff ff 01    	and    $0x1ffffff,%edx
40222c:	09 c1                	or     %eax,%ecx
40222e:	83 c8 30             	or     $0x30,%eax
402231:	88 07                	mov    %al,(%edi)
402233:	8d 04 92             	lea    (%edx,%edx,4),%eax
402236:	8d 14 92             	lea    (%edx,%edx,4),%edx
402239:	83 f9 01             	cmp    $0x1,%ecx
40223c:	83 df ff             	sbb    $0xffffffff,%edi
40223f:	c1 e8 18             	shr    $0x18,%eax
402242:	81 e2 ff ff ff 00    	and    $0xffffff,%edx
402248:	09 c1                	or     %eax,%ecx
40224a:	83 c8 30             	or     $0x30,%eax
40224d:	88 07                	mov    %al,(%edi)
40224f:	8d 04 92             	lea    (%edx,%edx,4),%eax
402252:	8d 14 92             	lea    (%edx,%edx,4),%edx
402255:	83 f9 01             	cmp    $0x1,%ecx
402258:	83 df ff             	sbb    $0xffffffff,%edi
40225b:	c1 e8 17             	shr    $0x17,%eax
40225e:	81 e2 ff ff 7f 00    	and    $0x7fffff,%edx
402264:	09 c1                	or     %eax,%ecx
402266:	83 c8 30             	or     $0x30,%eax
402269:	88 07                	mov    %al,(%edi)
40226b:	8d 04 92             	lea    (%edx,%edx,4),%eax
40226e:	8d 14 92             	lea    (%edx,%edx,4),%edx
402271:	83 f9 01             	cmp    $0x1,%ecx
402274:	83 df ff             	sbb    $0xffffffff,%edi
402277:	c1 e8 16             	shr    $0x16,%eax
40227a:	81 e2 ff ff 3f 00    	and    $0x3fffff,%edx
402280:	09 c1                	or     %eax,%ecx
402282:	83 c8 30             	or     $0x30,%eax
402285:	88 07                	mov    %al,(%edi)
402287:	8d 04 92             	lea    (%edx,%edx,4),%eax
40228a:	8d 14 92             	lea    (%edx,%edx,4),%edx
40228d:	83 f9 01             	cmp    $0x1,%ecx
402290:	83 df ff             	sbb    $0xffffffff,%edi
402293:	c1 e8 15             	shr    $0x15,%eax
402296:	81 e2 ff ff 1f 00    	and    $0x1fffff,%edx
40229c:	09 c1                	or     %eax,%ecx
40229e:	83 c8 30             	or     $0x30,%eax
4022a1:	88 07                	mov    %al,(%edi)
4022a3:	8d 04 92             	lea    (%edx,%edx,4),%eax
4022a6:	83 f9 01             	cmp    $0x1,%ecx
4022a9:	83 df ff             	sbb    $0xffffffff,%edi
4022ac:	c1 e8 14             	shr    $0x14,%eax
4022af:	83 c8 30             	or     $0x30,%eax
4022b2:	88 07                	mov    %al,(%edi)
4022b4:	8d 47 01             	lea    0x1(%edi),%eax
4022b7:	5f                   	pop    %edi
4022b8:	c3                   	ret
4022b9:	8d 40 00             	lea    0x0(%eax),%eax
4022bc:	53                   	push   %ebx
4022bd:	56                   	push   %esi
4022be:	8b f1                	mov    %ecx,%esi
4022c0:	8b da                	mov    %edx,%ebx
4022c2:	8b d3                	mov    %ebx,%edx
4022c4:	8b ce                	mov    %esi,%ecx
4022c6:	e8 11 0c 00 00       	call   0x402edc
4022cb:	8b c3                	mov    %ebx,%eax
4022cd:	03 c6                	add    %esi,%eax
4022cf:	5e                   	pop    %esi
4022d0:	5b                   	pop    %ebx
4022d1:	c3                   	ret
4022d2:	8b c0                	mov    %eax,%eax
4022d4:	55                   	push   %ebp
4022d5:	8b ec                	mov    %esp,%ebp
4022d7:	53                   	push   %ebx
4022d8:	56                   	push   %esi
4022d9:	8b f2                	mov    %edx,%esi
4022db:	8b d8                	mov    %eax,%ebx
4022dd:	8b d3                	mov    %ebx,%edx
4022df:	8b ca                	mov    %edx,%ecx
4022e1:	83 c1 b4             	add    $0xffffffb4,%ecx
4022e4:	8b 45 08             	mov    0x8(%ebp),%eax
4022e7:	8b 40 e4             	mov    -0x1c(%eax),%eax
4022ea:	3b c8                	cmp    %eax,%ecx
4022ec:	72 10                	jb     0x4022fe
4022ee:	8b 4d 08             	mov    0x8(%ebp),%ecx
4022f1:	8b 4d 08             	mov    0x8(%ebp),%ecx
4022f4:	03 41 f0             	add    -0x10(%ecx),%eax
4022f7:	83 c2 df             	add    $0xffffffdf,%edx
4022fa:	3b c2                	cmp    %edx,%eax
4022fc:	73 14                	jae    0x402312
4022fe:	6a 1c                	push   $0x1c
402300:	8b 45 08             	mov    0x8(%ebp),%eax
402303:	83 c0 e4             	add    $0xffffffe4,%eax
402306:	50                   	push   %eax
402307:	8b c3                	mov    %ebx,%eax
402309:	83 c0 b4             	add    $0xffffffb4,%eax
40230c:	50                   	push   %eax
40230d:	e8 12 f0 ff ff       	call   0x401324
402312:	81 fe e8 03 00 00    	cmp    $0x3e8,%esi
402318:	7d 3c                	jge    0x402356
40231a:	8b 45 08             	mov    0x8(%ebp),%eax
40231d:	8b 40 e4             	mov    -0x1c(%eax),%eax
402320:	8b 55 08             	mov    0x8(%ebp),%edx
402323:	03 42 f0             	add    -0x10(%edx),%eax
402326:	8b d3                	mov    %ebx,%edx
402328:	83 c2 df             	add    $0xffffffdf,%edx
40232b:	3b c2                	cmp    %edx,%eax
40232d:	76 27                	jbe    0x402356
40232f:	8b 45 08             	mov    0x8(%ebp),%eax
402332:	81 78 f4 00 10 00 00 	cmpl   $0x1000,-0xc(%eax)
402339:	75 1b                	jne    0x402356
40233b:	8b 45 08             	mov    0x8(%ebp),%eax
40233e:	f6 40 f8 e6          	testb  $0xe6,-0x8(%eax)
402342:	74 12                	je     0x402356
402344:	8b 45 08             	mov    0x8(%ebp),%eax
402347:	f6 40 f9 01          	testb  $0x1,-0x7(%eax)
40234b:	75 09                	jne    0x402356
40234d:	8b c3                	mov    %ebx,%eax
40234f:	83 c0 b4             	add    $0xffffffb4,%eax
402352:	3b 18                	cmp    (%eax),%ebx
402354:	74 04                	je     0x40235a
402356:	33 c0                	xor    %eax,%eax
402358:	eb 02                	jmp    0x40235c
40235a:	b0 01                	mov    $0x1,%al
40235c:	84 c0                	test   %al,%al
40235e:	74 25                	je     0x402385
402360:	83 c3 dc             	add    $0xffffffdc,%ebx
402363:	8b 1b                	mov    (%ebx),%ebx
402365:	85 db                	test   %ebx,%ebx
402367:	74 1a                	je     0x402383
402369:	8b 45 08             	mov    0x8(%ebp),%eax
40236c:	50                   	push   %eax
40236d:	8d 56 01             	lea    0x1(%esi),%edx
402370:	8b c3                	mov    %ebx,%eax
402372:	83 e8 b4             	sub    $0xffffffb4,%eax
402375:	e8 5a ff ff ff       	call   0x4022d4
40237a:	59                   	pop    %ecx
40237b:	84 c0                	test   %al,%al
40237d:	75 04                	jne    0x402383
40237f:	33 c0                	xor    %eax,%eax
402381:	eb 02                	jmp    0x402385
402383:	b0 01                	mov    $0x1,%al
402385:	5e                   	pop    %esi
402386:	5b                   	pop    %ebx
402387:	5d                   	pop    %ebp
402388:	c3                   	ret
402389:	8d 40 00             	lea    0x0(%eax),%eax
40238c:	55                   	push   %ebp
40238d:	8b ec                	mov    %esp,%ebp
40238f:	83 c4 e4             	add    $0xffffffe4,%esp
402392:	53                   	push   %ebx
402393:	8b 18                	mov    (%eax),%ebx
402395:	33 c0                	xor    %eax,%eax
402397:	89 45 f0             	mov    %eax,-0x10(%ebp)
40239a:	81 fb 00 00 01 00    	cmp    $0x10000,%ebx
4023a0:	72 0f                	jb     0x4023b1
4023a2:	55                   	push   %ebp
4023a3:	33 d2                	xor    %edx,%edx
4023a5:	8b c3                	mov    %ebx,%eax
4023a7:	e8 28 ff ff ff       	call   0x4022d4
4023ac:	59                   	pop    %ecx
4023ad:	84 c0                	test   %al,%al
4023af:	75 02                	jne    0x4023b3
4023b1:	33 db                	xor    %ebx,%ebx
4023b3:	8b c3                	mov    %ebx,%eax
4023b5:	5b                   	pop    %ebx
4023b6:	8b e5                	mov    %ebp,%esp
4023b8:	5d                   	pop    %ebp
4023b9:	c3                   	ret
4023ba:	8b c0                	mov    %eax,%eax
4023bc:	80 3d 4d e0 46 00 00 	cmpb   $0x0,0x46e04d
4023c3:	74 34                	je     0x4023f9
4023c5:	eb 20                	jmp    0x4023e7
4023c7:	6a 00                	push   $0x0
4023c9:	e8 d2 ef ff ff       	call   0x4013a0
4023ce:	b9 c0 07 47 00       	mov    $0x4707c0,%ecx
4023d3:	b2 01                	mov    $0x1,%dl
4023d5:	33 c0                	xor    %eax,%eax
4023d7:	e8 34 f0 ff ff       	call   0x401410
4023dc:	84 c0                	test   %al,%al
4023de:	74 19                	je     0x4023f9
4023e0:	6a 0a                	push   $0xa
4023e2:	e8 b9 ef ff ff       	call   0x4013a0
4023e7:	b9 c0 07 47 00       	mov    $0x4707c0,%ecx
4023ec:	b2 01                	mov    $0x1,%dl
4023ee:	33 c0                	xor    %eax,%eax
4023f0:	e8 1b f0 ff ff       	call   0x401410
4023f5:	84 c0                	test   %al,%al
4023f7:	75 ce                	jne    0x4023c7
4023f9:	83 3d bc 07 47 00 00 	cmpl   $0x0,0x4707bc
402400:	75 18                	jne    0x40241a
402402:	6a 04                	push   $0x4
402404:	68 00 10 00 00       	push   $0x1000
402409:	68 00 00 01 00       	push   $0x10000
40240e:	6a 00                	push   $0x0
402410:	e8 7b ef ff ff       	call   0x401390
402415:	a3 bc 07 47 00       	mov    %eax,0x4707bc
40241a:	83 3d bc 07 47 00 00 	cmpl   $0x0,0x4707bc
402421:	0f 95 c0             	setne  %al
402424:	c3                   	ret
402425:	8d 40 00             	lea    0x0(%eax),%eax
402428:	53                   	push   %ebx
402429:	8b d8                	mov    %eax,%ebx
40242b:	e8 8c ff ff ff       	call   0x4023bc
402430:	84 c0                	test   %al,%al
402432:	74 29                	je     0x40245d
402434:	a1 bc 07 47 00       	mov    0x4707bc,%eax
402439:	81 38 fe 3f 00 00    	cmpl   $0x3ffe,(%eax)
40243f:	7d 1c                	jge    0x40245d
402441:	a1 bc 07 47 00       	mov    0x4707bc,%eax
402446:	8b 00                	mov    (%eax),%eax
402448:	8b 15 bc 07 47 00    	mov    0x4707bc,%edx
40244e:	89 5c 82 04          	mov    %ebx,0x4(%edx,%eax,4)
402452:	a1 bc 07 47 00       	mov    0x4707bc,%eax
402457:	ff 00                	incl   (%eax)
402459:	b0 01                	mov    $0x1,%al
40245b:	eb 02                	jmp    0x40245f
40245d:	33 c0                	xor    %eax,%eax
40245f:	c6 05 c0 07 47 00 00 	movb   $0x0,0x4707c0
402466:	5b                   	pop    %ebx
402467:	c3                   	ret
402468:	53                   	push   %ebx
402469:	56                   	push   %esi
40246a:	57                   	push   %edi
40246b:	8b f0                	mov    %eax,%esi
40246d:	bf bc 07 47 00       	mov    $0x4707bc,%edi
402472:	33 db                	xor    %ebx,%ebx
402474:	83 3f 00             	cmpl   $0x0,(%edi)
402477:	74 3f                	je     0x4024b8
402479:	e8 3e ff ff ff       	call   0x4023bc
40247e:	84 c0                	test   %al,%al
402480:	74 36                	je     0x4024b8
402482:	8b 07                	mov    (%edi),%eax
402484:	8b 10                	mov    (%eax),%edx
402486:	4a                   	dec    %edx
402487:	85 d2                	test   %edx,%edx
402489:	7c 26                	jl     0x4024b1
40248b:	42                   	inc    %edx
40248c:	33 c0                	xor    %eax,%eax
40248e:	8b 0f                	mov    (%edi),%ecx
402490:	3b 74 81 04          	cmp    0x4(%ecx,%eax,4),%esi
402494:	75 17                	jne    0x4024ad
402496:	8b 17                	mov    (%edi),%edx
402498:	8b 12                	mov    (%edx),%edx
40249a:	8b 0f                	mov    (%edi),%ecx
40249c:	8b 14 91             	mov    (%ecx,%edx,4),%edx
40249f:	8b 0f                	mov    (%edi),%ecx
4024a1:	89 54 81 04          	mov    %edx,0x4(%ecx,%eax,4)
4024a5:	8b 17                	mov    (%edi),%edx
4024a7:	ff 0a                	decl   (%edx)
4024a9:	b3 01                	mov    $0x1,%bl
4024ab:	eb 04                	jmp    0x4024b1
4024ad:	40                   	inc    %eax
4024ae:	4a                   	dec    %edx
4024af:	75 dd                	jne    0x40248e
4024b1:	c6 05 c0 07 47 00 00 	movb   $0x0,0x4707c0
4024b8:	8b c3                	mov    %ebx,%eax
4024ba:	5f                   	pop    %edi
4024bb:	5e                   	pop    %esi
4024bc:	5b                   	pop    %ebx
4024bd:	c3                   	ret
4024be:	8b c0                	mov    %eax,%eax
4024c0:	55                   	push   %ebp
4024c1:	8b ec                	mov    %esp,%ebp
4024c3:	83 c4 e0             	add    $0xffffffe0,%esp
4024c6:	53                   	push   %ebx
4024c7:	56                   	push   %esi
4024c8:	57                   	push   %edi
4024c9:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024cc:	8b 45 fc             	mov    -0x4(%ebp),%eax
4024cf:	8b 00                	mov    (%eax),%eax
4024d1:	81 e8 40 00 46 00    	sub    $0x460040,%eax
4024d7:	c1 e8 05             	shr    $0x5,%eax
4024da:	c1 e0 08             	shl    $0x8,%eax
4024dd:	8b 55 08             	mov    0x8(%ebp),%edx
4024e0:	8d b4 c2 00 48 fe ff 	lea    -0x1b800(%edx,%eax,8),%esi
4024e7:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
4024ea:	8d 55 e8             	lea    -0x18(%ebp),%edx
4024ed:	8b 45 fc             	mov    -0x4(%ebp),%eax
4024f0:	e8 6f fc ff ff       	call   0x402164
4024f5:	e9 fd 00 00 00       	jmp    0x4025f7
4024fa:	8b 45 e8             	mov    -0x18(%ebp),%eax
4024fd:	83 e8 04             	sub    $0x4,%eax
402500:	f6 00 01             	testb  $0x1,(%eax)
402503:	0f 85 e2 00 00 00    	jne    0x4025eb