40826f:	8b 46 08             	mov    0x8(%esi),%eax
408272:	89 14 88             	mov    %edx,(%eax,%ecx,4)
408275:	41                   	inc    %ecx
408276:	8b 52 24             	mov    0x24(%edx),%edx
408279:	3b 4e 0c             	cmp    0xc(%esi),%ecx
40827c:	7c f1                	jl     0x40826f
40827e:	53                   	push   %ebx
40827f:	57                   	push   %edi
408280:	8b 46 0c             	mov    0xc(%esi),%eax
408283:	32 db                	xor    %bl,%bl
408285:	33 ff                	xor    %edi,%edi
408287:	48                   	dec    %eax
408288:	85 c0                	test   %eax,%eax
40828a:	7e 2a                	jle    0x4082b6
40828c:	8b 46 08             	mov    0x8(%esi),%eax
40828f:	8b 0c b8             	mov    (%eax,%edi,4),%ecx
408292:	8b d1                	mov    %ecx,%edx
408294:	8b 44 b8 04          	mov    0x4(%eax,%edi,4),%eax
408298:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40829b:	8b c8                	mov    %eax,%ecx
40829d:	89 45 f8             	mov    %eax,-0x8(%ebp)
4082a0:	e8 6e dc 00 00       	call   0x415f13
4082a5:	84 c0                	test   %al,%al
4082a7:	75 11                	jne    0x4082ba
4082a9:	8b 46 0c             	mov    0xc(%esi),%eax
4082ac:	47                   	inc    %edi
4082ad:	48                   	dec    %eax
4082ae:	3b f8                	cmp    %eax,%edi
4082b0:	7c da                	jl     0x40828c
4082b2:	84 db                	test   %bl,%bl
4082b4:	75 ca                	jne    0x408280
4082b6:	5f                   	pop    %edi
4082b7:	5b                   	pop    %ebx
4082b8:	eb 8f                	jmp    0x408249
4082ba:	8b 46 08             	mov    0x8(%esi),%eax
4082bd:	b3 01                	mov    $0x1,%bl
4082bf:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4082c2:	89 0c b8             	mov    %ecx,(%eax,%edi,4)
4082c5:	8b 46 08             	mov    0x8(%esi),%eax
4082c8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4082cb:	89 4c b8 04          	mov    %ecx,0x4(%eax,%edi,4)
4082cf:	eb d8                	jmp    0x4082a9
4082d1:	cc                   	int3
4082d2:	cc                   	int3
4082d3:	cc                   	int3
4082d4:	cc                   	int3
4082d5:	cc                   	int3
4082d6:	cc                   	int3
4082d7:	cc                   	int3
4082d8:	cc                   	int3
4082d9:	cc                   	int3
4082da:	cc                   	int3
4082db:	cc                   	int3
4082dc:	cc                   	int3
4082dd:	cc                   	int3
4082de:	cc                   	int3
4082df:	cc                   	int3
4082e0:	55                   	push   %ebp
4082e1:	8b ec                	mov    %esp,%ebp
4082e3:	51                   	push   %ecx
4082e4:	53                   	push   %ebx
4082e5:	56                   	push   %esi
4082e6:	8b f1                	mov    %ecx,%esi
4082e8:	57                   	push   %edi
4082e9:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
4082ed:	74 75                	je     0x408364
4082ef:	8d 4d 08             	lea    0x8(%ebp),%ecx
4082f2:	e8 b8 fc ff ff       	call   0x407faf
4082f7:	ff 75 0c             	push   0xc(%ebp)
4082fa:	ff 75 08             	push   0x8(%ebp)
4082fd:	ff 15 7c f6 48 00    	call   *0x48f67c
408303:	8b 7e 08             	mov    0x8(%esi),%edi
408306:	85 ff                	test   %edi,%edi
408308:	75 5e                	jne    0x408368
40830a:	8b 3e                	mov    (%esi),%edi
40830c:	85 ff                	test   %edi,%edi
40830e:	74 54                	je     0x408364
408310:	8b 77 04             	mov    0x4(%edi),%esi
408313:	3b 75 0c             	cmp    0xc(%ebp),%esi
408316:	75 45                	jne    0x40835d
408318:	8b 55 08             	mov    0x8(%ebp),%edx
40831b:	8b 07                	mov    (%edi),%eax
40831d:	85 f6                	test   %esi,%esi
40831f:	74 11                	je     0x408332
408321:	66 8b 08             	mov    (%eax),%cx
408324:	66 3b 0a             	cmp    (%edx),%cx
408327:	75 34                	jne    0x40835d
408329:	83 c0 02             	add    $0x2,%eax
40832c:	83 c2 02             	add    $0x2,%edx
40832f:	4e                   	dec    %esi
408330:	75 ef                	jne    0x408321
408332:	8b 45 14             	mov    0x14(%ebp),%eax
408335:	ff 08                	decl   (%eax)
408337:	8b 45 14             	mov    0x14(%ebp),%eax
40833a:	83 38 00             	cmpl   $0x0,(%eax)
40833d:	75 13                	jne    0x408352
40833f:	ff 75 08             	push   0x8(%ebp)
408342:	e8 25 8d 01 00       	call   0x42106c
408347:	ff 75 14             	push   0x14(%ebp)
40834a:	e8 1d 8d 01 00       	call   0x42106c
40834f:	83 c4 08             	add    $0x8,%esp
408352:	8b c7                	mov    %edi,%eax
408354:	5f                   	pop    %edi
408355:	5e                   	pop    %esi
408356:	5b                   	pop    %ebx
408357:	8b e5                	mov    %ebp,%esp
408359:	5d                   	pop    %ebp
40835a:	c2 10 00             	ret    $0x10
40835d:	8b 7f 24             	mov    0x24(%edi),%edi
408360:	85 ff                	test   %edi,%edi
408362:	75 ac                	jne    0x408310
408364:	33 ff                	xor    %edi,%edi
408366:	eb ca                	jmp    0x408332
408368:	8b 76 0c             	mov    0xc(%esi),%esi
40836b:	33 db                	xor    %ebx,%ebx
40836d:	4e                   	dec    %esi
40836e:	78 f4                	js     0x408364
408370:	8d 04 1e             	lea    (%esi,%ebx,1),%eax
408373:	99                   	cltd
408374:	8d 4d 08             	lea    0x8(%ebp),%ecx
408377:	2b c2                	sub    %edx,%eax
408379:	d1 f8                	sar    $1,%eax
40837b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40837e:	ff 34 87             	push   (%edi,%eax,4)
408381:	e8 93 fc ff ff       	call   0x408019
408386:	85 c0                	test   %eax,%eax
408388:	78 0c                	js     0x408396
40838a:	7e 10                	jle    0x40839c
40838c:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40838f:	43                   	inc    %ebx
408390:	3b de                	cmp    %esi,%ebx
408392:	7e dc                	jle    0x408370
408394:	eb ce                	jmp    0x408364
408396:	8b 75 fc             	mov    -0x4(%ebp),%esi
408399:	4e                   	dec    %esi
40839a:	eb f4                	jmp    0x408390
40839c:	3b de                	cmp    %esi,%ebx
40839e:	7f c4                	jg     0x408364
4083a0:	8b 45 fc             	mov    -0x4(%ebp),%eax
4083a3:	8b 3c 87             	mov    (%edi,%eax,4),%edi
4083a6:	eb 8a                	jmp    0x408332
4083a8:	55                   	push   %ebp
4083a9:	8b ec                	mov    %esp,%ebp
4083ab:	57                   	push   %edi
4083ac:	8b f9                	mov    %ecx,%edi
4083ae:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
4083b2:	75 47                	jne    0x4083fb
4083b4:	56                   	push   %esi
4083b5:	6a 28                	push   $0x28
4083b7:	e8 3a 8c 01 00       	call   0x420ff6
4083bc:	8b f0                	mov    %eax,%esi
4083be:	59                   	pop    %ecx
4083bf:	85 f6                	test   %esi,%esi
4083c1:	74 41                	je     0x408404
4083c3:	8b ce                	mov    %esi,%ecx
4083c5:	e8 fd f3 ff ff       	call   0x4077c7
4083ca:	ff 75 08             	push   0x8(%ebp)
4083cd:	8b ce                	mov    %esi,%ecx
4083cf:	e8 ec 83 01 00       	call   0x4207c0
4083d4:	8b ce                	mov    %esi,%ecx
4083d6:	e8 d4 fb ff ff       	call   0x407faf
4083db:	ff 76 04             	push   0x4(%esi)
4083de:	ff 36                	push   (%esi)
4083e0:	ff 15 7c f6 48 00    	call   *0x48f67c
4083e6:	83 66 24 00          	andl   $0x0,0x24(%esi)
4083ea:	8b 47 04             	mov    0x4(%edi),%eax
4083ed:	85 c0                	test   %eax,%eax
4083ef:	74 0f                	je     0x408400
4083f1:	89 70 24             	mov    %esi,0x24(%eax)
4083f4:	ff 47 0c             	incl   0xc(%edi)
4083f7:	89 77 04             	mov    %esi,0x4(%edi)
4083fa:	5e                   	pop    %esi
4083fb:	5f                   	pop    %edi
4083fc:	5d                   	pop    %ebp
4083fd:	c2 04 00             	ret    $0x4
408400:	89 37                	mov    %esi,(%edi)
408402:	eb f0                	jmp    0x4083f4
408404:	33 f6                	xor    %esi,%esi
408406:	eb c2                	jmp    0x4083ca
408408:	57                   	push   %edi
408409:	8b f9                	mov    %ecx,%edi
40840b:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
40840f:	75 23                	jne    0x408434
408411:	8b 3f                	mov    (%edi),%edi
408413:	85 ff                	test   %edi,%edi
408415:	75 02                	jne    0x408419
408417:	5f                   	pop    %edi
408418:	c3                   	ret
408419:	56                   	push   %esi
40841a:	8b 77 24             	mov    0x24(%edi),%esi
40841d:	8b cf                	mov    %edi,%ecx
40841f:	e8 40 d6 ff ff       	call   0x405a64
408424:	57                   	push   %edi
408425:	e8 42 8c 01 00       	call   0x42106c
40842a:	8b fe                	mov    %esi,%edi
40842c:	59                   	pop    %ecx
40842d:	85 f6                	test   %esi,%esi
40842f:	75 e9                	jne    0x40841a
408431:	5e                   	pop    %esi
408432:	5f                   	pop    %edi
408433:	c3                   	ret
408434:	ff 77 08             	push   0x8(%edi)
408437:	e8 30 8c 01 00       	call   0x42106c
40843c:	59                   	pop    %ecx
40843d:	eb d2                	jmp    0x408411
40843f:	55                   	push   %ebp
408440:	8b ec                	mov    %esp,%ebp
408442:	51                   	push   %ecx
408443:	51                   	push   %ecx
408444:	56                   	push   %esi
408445:	8b f1                	mov    %ecx,%esi
408447:	57                   	push   %edi
408448:	80 7e 09 00          	cmpb   $0x0,0x9(%esi)
40844c:	0f 85 78 6d 03 00    	jne    0x43f1ca
408452:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
408456:	75 7e                	jne    0x4084d6
408458:	53                   	push   %ebx
408459:	8b 5e 04             	mov    0x4(%esi),%ebx
40845c:	8b 43 08             	mov    0x8(%ebx),%eax
40845f:	89 45 f8             	mov    %eax,-0x8(%ebp)
408462:	85 db                	test   %ebx,%ebx
408464:	74 54                	je     0x4084ba
408466:	8b 3b                	mov    (%ebx),%edi
408468:	85 ff                	test   %edi,%edi
40846a:	74 44                	je     0x4084b0
40846c:	83 7f 18 00          	cmpl   $0x0,0x18(%edi)
408470:	74 0a                	je     0x40847c
408472:	ff 77 18             	push   0x18(%edi)
408475:	8b cb                	mov    %ebx,%ecx
408477:	e8 a4 02 00 00       	call   0x408720
40847c:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
408480:	75 48                	jne    0x4084ca
408482:	80 7f 10 00          	cmpb   $0x0,0x10(%edi)
408486:	75 1a                	jne    0x4084a2
408488:	8b 47 14             	mov    0x14(%edi),%eax
40848b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40848e:	85 c0                	test   %eax,%eax
408490:	74 10                	je     0x4084a2
408492:	8b c8                	mov    %eax,%ecx
408494:	e8 57 19 00 00       	call   0x409df0
408499:	ff 75 fc             	push   -0x4(%ebp)
40849c:	e8 cb 8b 01 00       	call   0x42106c
4084a1:	59                   	pop    %ecx
4084a2:	8b cf                	mov    %edi,%ecx
4084a4:	e8 bb d5 ff ff       	call   0x405a64
4084a9:	57                   	push   %edi
4084aa:	e8 bd 8b 01 00       	call   0x42106c
4084af:	59                   	pop    %ecx
4084b0:	53                   	push   %ebx
4084b1:	e8 b6 8b 01 00       	call   0x42106c
4084b6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4084b9:	59                   	pop    %ecx
4084ba:	89 46 04             	mov    %eax,0x4(%esi)
4084bd:	c6 46 09 00          	movb   $0x0,0x9(%esi)
4084c1:	5b                   	pop    %ebx
4084c2:	ff 0e                	decl   (%esi)
4084c4:	5f                   	pop    %edi
4084c5:	5e                   	pop    %esi
4084c6:	8b e5                	mov    %ebp,%esp
4084c8:	5d                   	pop    %ebp
4084c9:	c3                   	ret
4084ca:	ff 77 1c             	push   0x1c(%edi)
4084cd:	8b cb                	mov    %ebx,%ecx
4084cf:	e8 4c 02 00 00       	call   0x408720
4084d4:	eb ac                	jmp    0x408482
4084d6:	c6 46 09 01          	movb   $0x1,0x9(%esi)
4084da:	eb e6                	jmp    0x4084c2
4084dc:	55                   	push   %ebp
4084dd:	8b ec                	mov    %esp,%ebp
4084df:	56                   	push   %esi
4084e0:	57                   	push   %edi
4084e1:	8b f9                	mov    %ecx,%edi
4084e3:	80 7f 09 00          	cmpb   $0x0,0x9(%edi)
4084e7:	0f 85 f9 6c 03 00    	jne    0x43f1e6
4084ed:	6a 0c                	push   $0xc
4084ef:	e8 02 8b 01 00       	call   0x420ff6
4084f4:	8b f0                	mov    %eax,%esi
4084f6:	59                   	pop    %ecx
4084f7:	85 f6                	test   %esi,%esi
4084f9:	74 31                	je     0x40852c
4084fb:	8b 45 08             	mov    0x8(%ebp),%eax
4084fe:	83 26 00             	andl   $0x0,(%esi)
408501:	8b 48 04             	mov    0x4(%eax),%ecx
408504:	89 4e 04             	mov    %ecx,0x4(%esi)
408507:	85 c9                	test   %ecx,%ecx
408509:	78 1b                	js     0x408526
40850b:	ff 30                	push   (%eax)
40850d:	8b ce                	mov    %esi,%ecx
40850f:	56                   	push   %esi
408510:	e8 7f 02 00 00       	call   0x408794
408515:	8b 47 04             	mov    0x4(%edi),%eax
408518:	89 46 08             	mov    %eax,0x8(%esi)
40851b:	89 77 04             	mov    %esi,0x4(%edi)
40851e:	ff 07                	incl   (%edi)
408520:	5f                   	pop    %edi
408521:	5e                   	pop    %esi
408522:	5d                   	pop    %ebp
408523:	c2 04 00             	ret    $0x4
408526:	83 66 04 00          	andl   $0x0,0x4(%esi)
40852a:	eb df                	jmp    0x40850b
40852c:	33 f6                	xor    %esi,%esi
40852e:	eb e5                	jmp    0x408515
408530:	8b 0d 84 72 4c 00    	mov    0x4c7284,%ecx
408536:	85 c9                	test   %ecx,%ecx
408538:	75 21                	jne    0x40855b
40853a:	ff 35 78 72 4c 00    	push   0x4c7278
408540:	b9 78 72 4c 00       	mov    $0x4c7278,%ecx
408545:	e8 d6 01 00 00       	call   0x408720
40854a:	ff 35 70 72 4c 00    	push   0x4c7270
408550:	b9 70 72 4c 00       	mov    $0x4c7270,%ecx
408555:	e8 c6 01 00 00       	call   0x408720
40855a:	c3                   	ret
40855b:	56                   	push   %esi
40855c:	e9 9e 6c 03 00       	jmp    0x43f1ff
408561:	55                   	push   %ebp
408562:	8b ec                	mov    %esp,%ebp
408564:	83 ec 0c             	sub    $0xc,%esp
408567:	8b 45 08             	mov    0x8(%ebp),%eax
40856a:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40856e:	89 45 f8             	mov    %eax,-0x8(%ebp)
408571:	85 c0                	test   %eax,%eax
408573:	78 1f                	js     0x408594
408575:	8d 45 f4             	lea    -0xc(%ebp),%eax
408578:	b9 80 72 4c 00       	mov    $0x4c7280,%ecx
40857d:	50                   	push   %eax
40857e:	e8 59 ff ff ff       	call   0x4084dc
408583:	ff 75 f4             	push   -0xc(%ebp)
408586:	8d 4d f4             	lea    -0xc(%ebp),%ecx
408589:	e8 92 01 00 00       	call   0x408720
40858e:	8b e5                	mov    %ebp,%esp
408590:	5d                   	pop    %ebp
408591:	c2 04 00             	ret    $0x4
408594:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
408598:	eb db                	jmp    0x408575
40859a:	55                   	push   %ebp
40859b:	8b ec                	mov    %esp,%ebp
40859d:	8b 45 10             	mov    0x10(%ebp),%eax
4085a0:	33 c9                	xor    %ecx,%ecx
4085a2:	2b c1                	sub    %ecx,%eax
4085a4:	74 27                	je     0x4085cd
4085a6:	48                   	dec    %eax
4085a7:	0f 85 67 6c 03 00    	jne    0x43f214
4085ad:	ff 75 0c             	push   0xc(%ebp)
4085b0:	ff 75 08             	push   0x8(%ebp)
4085b3:	39 0d 80 72 4c 00    	cmp    %ecx,0x4c7280
4085b9:	75 2b                	jne    0x4085e6
4085bb:	b9 70 72 4c 00       	mov    $0x4c7270,%ecx
4085c0:	e8 ed 05 00 00       	call   0x408bb2
4085c5:	8b c8                	mov    %eax,%ecx
4085c7:	8b c1                	mov    %ecx,%eax