40218c:	8d 4c 24 08          	lea    0x8(%esp),%ecx
402190:	8b d7                	mov    %edi,%edx
402192:	b8 20 16 46 00       	mov    $0x461620,%eax
402197:	e8 00 f3 ff ff       	call   0x40149c
40219c:	8b 5c 24 08          	mov    0x8(%esp),%ebx
4021a0:	85 db                	test   %ebx,%ebx
4021a2:	75 04                	jne    0x4021a8
4021a4:	33 c0                	xor    %eax,%eax
4021a6:	eb 52                	jmp    0x4021fa
4021a8:	8b 07                	mov    (%edi),%eax
4021aa:	3b d8                	cmp    %eax,%ebx
4021ac:	73 0a                	jae    0x4021b8
4021ae:	e8 0d fd ff ff       	call   0x401ec0
4021b3:	29 07                	sub    %eax,(%edi)
4021b5:	01 47 04             	add    %eax,0x4(%edi)
4021b8:	8b 07                	mov    (%edi),%eax
4021ba:	03 47 04             	add    0x4(%edi),%eax
4021bd:	8b f3                	mov    %ebx,%esi
4021bf:	03 74 24 0c          	add    0xc(%esp),%esi
4021c3:	3b c6                	cmp    %esi,%eax
4021c5:	73 08                	jae    0x4021cf
4021c7:	e8 6c fd ff ff       	call   0x401f38
4021cc:	01 47 04             	add    %eax,0x4(%edi)
4021cf:	8b 07                	mov    (%edi),%eax
4021d1:	03 47 04             	add    0x4(%edi),%eax
4021d4:	3b f0                	cmp    %eax,%esi
4021d6:	75 11                	jne    0x4021e9
4021d8:	83 e8 04             	sub    $0x4,%eax
4021db:	ba 04 00 00 00       	mov    $0x4,%edx
4021e0:	e8 53 fc ff ff       	call   0x401e38
4021e5:	83 6f 04 04          	subl   $0x4,0x4(%edi)
4021e9:	8b 07                	mov    (%edi),%eax
4021eb:	a3 18 16 46 00       	mov    %eax,0x461618
4021f0:	8b 47 04             	mov    0x4(%edi),%eax
4021f3:	a3 14 16 46 00       	mov    %eax,0x461614
4021f8:	b0 01                	mov    $0x1,%al
4021fa:	83 c4 10             	add    $0x10,%esp
4021fd:	5f                   	pop    %edi
4021fe:	5e                   	pop    %esi
4021ff:	5b                   	pop    %ebx
402200:	c3                   	ret
402201:	8d 40 00             	lea    0x0(%eax),%eax
402204:	53                   	push   %ebx
402205:	83 c4 f8             	add    $0xfffffff8,%esp
402208:	8b d8                	mov    %eax,%ebx
40220a:	8b d4                	mov    %esp,%edx
40220c:	8d 43 04             	lea    0x4(%ebx),%eax
40220f:	e8 f4 f6 ff ff       	call   0x401908
402214:	83 3c 24 00          	cmpl   $0x0,(%esp)
402218:	74 0b                	je     0x402225
40221a:	8b c4                	mov    %esp,%eax
40221c:	e8 57 ff ff ff       	call   0x402178
402221:	84 c0                	test   %al,%al
402223:	75 04                	jne    0x402229
402225:	33 c0                	xor    %eax,%eax
402227:	eb 02                	jmp    0x40222b
402229:	b0 01                	mov    $0x1,%al
40222b:	59                   	pop    %ecx
40222c:	5a                   	pop    %edx
40222d:	5b                   	pop    %ebx
40222e:	c3                   	ret
40222f:	90                   	nop
402230:	53                   	push   %ebx
402231:	56                   	push   %esi
402232:	83 c4 f8             	add    $0xfffffff8,%esp
402235:	8b f2                	mov    %edx,%esi
402237:	8b d8                	mov    %eax,%ebx
402239:	8b cc                	mov    %esp,%ecx
40223b:	8d 56 04             	lea    0x4(%esi),%edx
40223e:	8b c3                	mov    %ebx,%eax
402240:	e8 6b f7 ff ff       	call   0x4019b0
402245:	83 3c 24 00          	cmpl   $0x0,(%esp)
402249:	74 0b                	je     0x402256
40224b:	8b c4                	mov    %esp,%eax
40224d:	e8 26 ff ff ff       	call   0x402178
402252:	84 c0                	test   %al,%al
402254:	75 04                	jne    0x40225a
402256:	33 c0                	xor    %eax,%eax
402258:	eb 02                	jmp    0x40225c
40225a:	b0 01                	mov    $0x1,%al
40225c:	59                   	pop    %ecx
40225d:	5a                   	pop    %edx
40225e:	5e                   	pop    %esi
40225f:	5b                   	pop    %ebx
402260:	c3                   	ret
402261:	8d 40 00             	lea    0x0(%eax),%eax
402264:	51                   	push   %ecx
402265:	8b d4                	mov    %esp,%edx
402267:	33 c9                	xor    %ecx,%ecx
402269:	89 0a                	mov    %ecx,(%edx)
40226b:	85 c0                	test   %eax,%eax
40226d:	79 03                	jns    0x402272
40226f:	83 c0 03             	add    $0x3,%eax
402272:	c1 f8 02             	sar    $0x2,%eax
402275:	3d 00 04 00 00       	cmp    $0x400,%eax
40227a:	7f 19                	jg     0x402295
40227c:	8b 0d 1c 16 46 00    	mov    0x46161c,%ecx
402282:	8b 4c 81 f4          	mov    -0xc(%ecx,%eax,4),%ecx
402286:	89 0a                	mov    %ecx,(%edx)
402288:	83 3a 00             	cmpl   $0x0,(%edx)
40228b:	75 08                	jne    0x402295
40228d:	40                   	inc    %eax
40228e:	3d 01 04 00 00       	cmp    $0x401,%eax
402293:	75 e7                	jne    0x40227c
402295:	8b 02                	mov    (%edx),%eax
402297:	5a                   	pop    %edx
402298:	c3                   	ret
402299:	8d 40 00             	lea    0x0(%eax),%eax
40229c:	53                   	push   %ebx
40229d:	56                   	push   %esi
40229e:	57                   	push   %edi
40229f:	55                   	push   %ebp
4022a0:	83 c4 f4             	add    $0xfffffff4,%esp
4022a3:	8b d8                	mov    %eax,%ebx
4022a5:	8d 74 24 08          	lea    0x8(%esp),%esi
4022a9:	bf 10 16 46 00       	mov    $0x461610,%edi
4022ae:	bd 14 16 46 00       	mov    $0x461614,%ebp
4022b3:	a1 08 16 46 00       	mov    0x461608,%eax
4022b8:	89 06                	mov    %eax,(%esi)
4022ba:	8b 06                	mov    (%esi),%eax
4022bc:	3b 58 08             	cmp    0x8(%eax),%ebx
4022bf:	0f 8e ab 00 00 00    	jle    0x402370
4022c5:	8b 07                	mov    (%edi),%eax
4022c7:	89 06                	mov    %eax,(%esi)
4022c9:	8b 06                	mov    (%esi),%eax
4022cb:	8b 40 08             	mov    0x8(%eax),%eax
4022ce:	3b d8                	cmp    %eax,%ebx
4022d0:	0f 8e 9a 00 00 00    	jle    0x402370
4022d6:	8b 16                	mov    (%esi),%edx
4022d8:	89 5a 08             	mov    %ebx,0x8(%edx)
4022db:	8b 16                	mov    (%esi),%edx
4022dd:	8b 52 04             	mov    0x4(%edx),%edx
4022e0:	89 16                	mov    %edx,(%esi)
4022e2:	8b 16                	mov    (%esi),%edx
4022e4:	3b 5a 08             	cmp    0x8(%edx),%ebx
4022e7:	7f f2                	jg     0x4022db
4022e9:	8b 17                	mov    (%edi),%edx
4022eb:	89 42 08             	mov    %eax,0x8(%edx)
4022ee:	8b 06                	mov    (%esi),%eax
4022f0:	3b 07                	cmp    (%edi),%eax
4022f2:	74 06                	je     0x4022fa
4022f4:	8b 06                	mov    (%esi),%eax
4022f6:	89 07                	mov    %eax,(%edi)
4022f8:	eb 76                	jmp    0x402370
4022fa:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402300:	7f 0e                	jg     0x402310
402302:	8b c3                	mov    %ebx,%eax
402304:	e8 5b ff ff ff       	call   0x402264
402309:	89 06                	mov    %eax,(%esi)
40230b:	83 3e 00             	cmpl   $0x0,(%esi)
40230e:	75 60                	jne    0x402370
402310:	8b c3                	mov    %ebx,%eax
402312:	e8 ed fe ff ff       	call   0x402204
402317:	84 c0                	test   %al,%al
402319:	75 0a                	jne    0x402325
40231b:	33 c0                	xor    %eax,%eax
40231d:	89 04 24             	mov    %eax,(%esp)
402320:	e9 b4 00 00 00       	jmp    0x4023d9
402325:	3b 5d 00             	cmp    0x0(%ebp),%ebx
402328:	7f 89                	jg     0x4022b3
40232a:	29 5d 00             	sub    %ebx,0x0(%ebp)
40232d:	83 7d 00 0c          	cmpl   $0xc,0x0(%ebp)
402331:	7d 08                	jge    0x40233b
402333:	03 5d 00             	add    0x0(%ebp),%ebx
402336:	33 c0                	xor    %eax,%eax
402338:	89 45 00             	mov    %eax,0x0(%ebp)
40233b:	a1 18 16 46 00       	mov    0x461618,%eax
402340:	89 44 24 04          	mov    %eax,0x4(%esp)
402344:	01 1d 18 16 46 00    	add    %ebx,0x461618
40234a:	8b c3                	mov    %ebx,%eax
40234c:	83 c8 02             	or     $0x2,%eax
40234f:	8b 54 24 04          	mov    0x4(%esp),%edx
402353:	89 02                	mov    %eax,(%edx)
402355:	8b 44 24 04          	mov    0x4(%esp),%eax
402359:	83 c0 04             	add    $0x4,%eax
40235c:	89 04 24             	mov    %eax,(%esp)
40235f:	ff 05 ac 15 46 00    	incl   0x4615ac
402365:	83 eb 04             	sub    $0x4,%ebx
402368:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
40236e:	eb 69                	jmp    0x4023d9
402370:	8b 06                	mov    (%esi),%eax
402372:	e8 e9 f9 ff ff       	call   0x401d60
402377:	8b 06                	mov    (%esi),%eax
402379:	8b 50 08             	mov    0x8(%eax),%edx
40237c:	8b c2                	mov    %edx,%eax
40237e:	2b c3                	sub    %ebx,%eax
402380:	83 f8 0c             	cmp    $0xc,%eax
402383:	7c 0c                	jl     0x402391
402385:	8b 16                	mov    (%esi),%edx
402387:	03 d3                	add    %ebx,%edx
402389:	92                   	xchg   %eax,%edx
40238a:	e8 a5 fc ff ff       	call   0x402034
40238f:	eb 1e                	jmp    0x4023af
402391:	8b da                	mov    %edx,%ebx
402393:	8b 06                	mov    (%esi),%eax
402395:	3b 07                	cmp    (%edi),%eax
402397:	75 07                	jne    0x4023a0
402399:	8b 06                	mov    (%esi),%eax
40239b:	8b 40 04             	mov    0x4(%eax),%eax
40239e:	89 07                	mov    %eax,(%edi)
4023a0:	8b 06                	mov    (%esi),%eax
4023a2:	03 c3                	add    %ebx,%eax
4023a4:	89 44 24 04          	mov    %eax,0x4(%esp)
4023a8:	8b 44 24 04          	mov    0x4(%esp),%eax
4023ac:	83 20 fe             	andl   $0xfffffffe,(%eax)
4023af:	8b 06                	mov    (%esi),%eax
4023b1:	89 44 24 04          	mov    %eax,0x4(%esp)
4023b5:	8b c3                	mov    %ebx,%eax
4023b7:	83 c8 02             	or     $0x2,%eax
4023ba:	8b 54 24 04          	mov    0x4(%esp),%edx
4023be:	89 02                	mov    %eax,(%edx)
4023c0:	8b 44 24 04          	mov    0x4(%esp),%eax
4023c4:	83 c0 04             	add    $0x4,%eax
4023c7:	89 04 24             	mov    %eax,(%esp)
4023ca:	ff 05 ac 15 46 00    	incl   0x4615ac
4023d0:	83 eb 04             	sub    $0x4,%ebx
4023d3:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
4023d9:	8b 04 24             	mov    (%esp),%eax
4023dc:	83 c4 0c             	add    $0xc,%esp
4023df:	5d                   	pop    %ebp
4023e0:	5f                   	pop    %edi
4023e1:	5e                   	pop    %esi
4023e2:	5b                   	pop    %ebx
4023e3:	c3                   	ret
4023e4:	55                   	push   %ebp
4023e5:	8b ec                	mov    %esp,%ebp
4023e7:	83 c4 ec             	add    $0xffffffec,%esp
4023ea:	53                   	push   %ebx
4023eb:	8b d8                	mov    %eax,%ebx
4023ed:	80 3d bc 15 46 00 00 	cmpb   $0x0,0x4615bc
4023f4:	75 09                	jne    0x4023ff
4023f6:	e8 8d f7 ff ff       	call   0x401b88
4023fb:	84 c0                	test   %al,%al
4023fd:	74 08                	je     0x402407
4023ff:	81 fb f8 ff ff 7f    	cmp    $0x7ffffff8,%ebx
402405:	7e 0a                	jle    0x402411
402407:	33 c0                	xor    %eax,%eax
402409:	89 45 fc             	mov    %eax,-0x4(%ebp)
40240c:	e9 76 01 00 00       	jmp    0x402587
402411:	33 d2                	xor    %edx,%edx
402413:	55                   	push   %ebp
402414:	68 80 25 40 00       	push   $0x402580
402419:	64 ff 32             	push   %fs:(%edx)
40241c:	64 89 22             	mov    %esp,%fs:(%edx)
40241f:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
402426:	74 0a                	je     0x402432
402428:	68 c4 15 46 00       	push   $0x4615c4
40242d:	e8 36 ef ff ff       	call   0x401368
402432:	83 c3 07             	add    $0x7,%ebx
402435:	83 e3 fc             	and    $0xfffffffc,%ebx
402438:	83 fb 0c             	cmp    $0xc,%ebx
40243b:	7d 05                	jge    0x402442
40243d:	bb 0c 00 00 00       	mov    $0xc,%ebx
402442:	81 fb 00 10 00 00    	cmp    $0x1000,%ebx
402448:	0f 8f ac 00 00 00    	jg     0x4024fa
40244e:	8b c3                	mov    %ebx,%eax
402450:	85 c0                	test   %eax,%eax
402452:	79 03                	jns    0x402457
402454:	83 c0 03             	add    $0x3,%eax
402457:	c1 f8 02             	sar    $0x2,%eax
40245a:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
402460:	8b 54 82 f4          	mov    -0xc(%edx,%eax,4),%edx
402464:	89 55 f8             	mov    %edx,-0x8(%ebp)
402467:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40246b:	0f 84 89 00 00 00    	je     0x4024fa
402471:	8b 55 f8             	mov    -0x8(%ebp),%edx
402474:	03 d3                	add    %ebx,%edx
402476:	89 55 ec             	mov    %edx,-0x14(%ebp)
402479:	8b 55 ec             	mov    -0x14(%ebp),%edx
40247c:	83 22 fe             	andl   $0xfffffffe,(%edx)
40247f:	8b 55 f8             	mov    -0x8(%ebp),%edx
402482:	8b 52 04             	mov    0x4(%edx),%edx
402485:	89 55 f0             	mov    %edx,-0x10(%ebp)
402488:	8b 55 f0             	mov    -0x10(%ebp),%edx
40248b:	3b 55 f8             	cmp    -0x8(%ebp),%edx
40248e:	75 0e                	jne    0x40249e
402490:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
402496:	33 c9                	xor    %ecx,%ecx
402498:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
40249c:	eb 26                	jmp    0x4024c4
40249e:	8b 15 1c 16 46 00    	mov    0x46161c,%edx
4024a4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4024a7:	89 4c 82 f4          	mov    %ecx,-0xc(%edx,%eax,4)
4024ab:	8b 45 f8             	mov    -0x8(%ebp),%eax
4024ae:	8b 00                	mov    (%eax),%eax
4024b0:	89 45 f4             	mov    %eax,-0xc(%ebp)
4024b3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4024b6:	8b 55 f0             	mov    -0x10(%ebp),%edx
4024b9:	89 50 04             	mov    %edx,0x4(%eax)
4024bc:	8b 45 f0             	mov    -0x10(%ebp),%eax
4024bf:	8b 55 f4             	mov    -0xc(%ebp),%edx
4024c2:	89 10                	mov    %edx,(%eax)
4024c4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4024c7:	89 45 ec             	mov    %eax,-0x14(%ebp)
4024ca:	8b 45 f8             	mov    -0x8(%ebp),%eax
4024cd:	8b 40 08             	mov    0x8(%eax),%eax
4024d0:	83 c8 02             	or     $0x2,%eax
4024d3:	8b 55 ec             	mov    -0x14(%ebp),%edx
4024d6:	89 02                	mov    %eax,(%edx)
4024d8:	8b 45 ec             	mov    -0x14(%ebp),%eax
4024db:	83 c0 04             	add    $0x4,%eax
4024de:	89 45 fc             	mov    %eax,-0x4(%ebp)
4024e1:	ff 05 ac 15 46 00    	incl   0x4615ac
4024e7:	83 eb 04             	sub    $0x4,%ebx
4024ea:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
4024f0:	e8 3b 1b 00 00       	call   0x404030
4024f5:	e9 8d 00 00 00       	jmp    0x402587
4024fa:	3b 1d 14 16 46 00    	cmp    0x461614,%ebx
402500:	7f 53                	jg     0x402555
402502:	29 1d 14 16 46 00    	sub    %ebx,0x461614
402508:	83 3d 14 16 46 00 0c 	cmpl   $0xc,0x461614
40250f:	7d 0d                	jge    0x40251e
402511:	03 1d 14 16 46 00    	add    0x461614,%ebx
402517:	33 c0                	xor    %eax,%eax
402519:	a3 14 16 46 00       	mov    %eax,0x461614
40251e:	a1 18 16 46 00       	mov    0x461618,%eax
402523:	89 45 ec             	mov    %eax,-0x14(%ebp)
402526:	01 1d 18 16 46 00    	add    %ebx,0x461618
40252c:	8b c3                	mov    %ebx,%eax
40252e:	83 c8 02             	or     $0x2,%eax
402531:	8b 55 ec             	mov    -0x14(%ebp),%edx
402534:	89 02                	mov    %eax,(%edx)
402536:	8b 45 ec             	mov    -0x14(%ebp),%eax
402539:	83 c0 04             	add    $0x4,%eax
40253c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40253f:	ff 05 ac 15 46 00    	incl   0x4615ac
402545:	83 eb 04             	sub    $0x4,%ebx
402548:	01 1d b0 15 46 00    	add    %ebx,0x4615b0
40254e:	e8 dd 1a 00 00       	call   0x404030
402553:	eb 32                	jmp    0x402587
402555:	8b c3                	mov    %ebx,%eax
402557:	e8 40 fd ff ff       	call   0x40229c
40255c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40255f:	33 c0                	xor    %eax,%eax
402561:	5a                   	pop    %edx
402562:	59                   	pop    %ecx
402563:	59                   	pop    %ecx
402564:	64 89 10             	mov    %edx,%fs:(%eax)
402567:	68 87 25 40 00       	push   $0x402587
40256c:	80 3d 45 10 46 00 00 	cmpb   $0x0,0x461045
402573:	74 0a                	je     0x40257f
402575:	68 c4 15 46 00       	push   $0x4615c4
40257a:	e8 f1 ed ff ff       	call   0x401370
40257f:	c3                   	ret
402580:	e9 c7 19 00 00       	jmp    0x403f4c
402585:	eb e5                	jmp    0x40256c
402587:	8b 45 fc             	mov    -0x4(%ebp),%eax
40258a:	5b                   	pop    %ebx
40258b:	8b e5                	mov    %ebp,%esp
40258d:	5d                   	pop    %ebp