4092c4:	e8 b9 00 00 00       	call   0x409382
4092c9:	84 c0                	test   %al,%al
4092cb:	8b 03                	mov    (%ebx),%eax
4092cd:	0f 84 f5 62 03 00    	je     0x43f5c8
4092d3:	33 f6                	xor    %esi,%esi
4092d5:	39 70 08             	cmp    %esi,0x8(%eax)
4092d8:	7f 36                	jg     0x409310
4092da:	8b 03                	mov    (%ebx),%eax
4092dc:	ff 70 04             	push   0x4(%eax)
4092df:	e8 88 7d 01 00       	call   0x42106c
4092e4:	83 c4 04             	add    $0x4,%esp
4092e7:	8b 03                	mov    (%ebx),%eax
4092e9:	5e                   	pop    %esi
4092ea:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
4092f1:	8b 03                	mov    (%ebx),%eax
4092f3:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
4092f9:	8b 03                	mov    (%ebx),%eax
4092fb:	c7 40 08 00 00 00 00 	movl   $0x0,0x8(%eax)
409302:	8b 03                	mov    (%ebx),%eax
409304:	5b                   	pop    %ebx
409305:	c7 80 0c 01 00 00 00 	movl   $0x0,0x10c(%eax)
40930c:	00 00 00
40930f:	c3                   	ret
409310:	57                   	push   %edi
409311:	8b 03                	mov    (%ebx),%eax
409313:	8b 40 04             	mov    0x4(%eax),%eax
409316:	8b 3c b0             	mov    (%eax,%esi,4),%edi
409319:	85 ff                	test   %edi,%edi
40931b:	75 0b                	jne    0x409328
40931d:	8b 03                	mov    (%ebx),%eax
40931f:	46                   	inc    %esi
409320:	3b 70 08             	cmp    0x8(%eax),%esi
409323:	7c ec                	jl     0x409311
409325:	5f                   	pop    %edi
409326:	eb b2                	jmp    0x4092da
409328:	8b cf                	mov    %edi,%ecx
40932a:	e8 c1 0a 00 00       	call   0x409df0
40932f:	57                   	push   %edi
409330:	e8 37 7d 01 00       	call   0x42106c
409335:	83 c4 04             	add    $0x4,%esp
409338:	eb e3                	jmp    0x40931d
40933a:	55                   	push   %ebp
40933b:	8b ec                	mov    %esp,%ebp
40933d:	56                   	push   %esi
40933e:	8b f1                	mov    %ecx,%esi
409340:	8b 4d 08             	mov    0x8(%ebp),%ecx
409343:	8b 01                	mov    (%ecx),%eax
409345:	81 38 ff ff ff 7f    	cmpl   $0x7fffffff,(%eax)
40934b:	0f 84 be 62 03 00    	je     0x43f60f
409351:	89 06                	mov    %eax,(%esi)
409353:	ff 00                	incl   (%eax)
409355:	8b c6                	mov    %esi,%eax
409357:	5e                   	pop    %esi
409358:	5d                   	pop    %ebp
409359:	c2 04 00             	ret    $0x4
40935c:	56                   	push   %esi
40935d:	68 14 02 00 00       	push   $0x214
409362:	8b f1                	mov    %ecx,%esi
409364:	e8 8d 7c 01 00       	call   0x420ff6
409369:	89 06                	mov    %eax,(%esi)
40936b:	59                   	pop    %ecx
40936c:	83 60 04 00          	andl   $0x0,0x4(%eax)
409370:	8b 06                	mov    (%esi),%eax
409372:	83 60 08 00          	andl   $0x0,0x8(%eax)
409376:	8b 06                	mov    (%esi),%eax
409378:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40937e:	8b c6                	mov    %esi,%eax
409380:	5e                   	pop    %esi
409381:	c3                   	ret
409382:	8b 01                	mov    (%ecx),%eax
409384:	8b 08                	mov    (%eax),%ecx
409386:	33 c0                	xor    %eax,%eax
409388:	40                   	inc    %eax
409389:	3b c8                	cmp    %eax,%ecx
40938b:	75 01                	jne    0x40938e
40938d:	c3                   	ret
40938e:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
409394:	74 f7                	je     0x40938d
409396:	33 c0                	xor    %eax,%eax
409398:	c3                   	ret
409399:	8b 41 0c             	mov    0xc(%ecx),%eax
40939c:	48                   	dec    %eax
40939d:	74 21                	je     0x4093c0
40939f:	48                   	dec    %eax
4093a0:	0f 84 a0 62 03 00    	je     0x43f646
4093a6:	48                   	dec    %eax
4093a7:	0f 84 89 62 03 00    	je     0x43f636
4093ad:	48                   	dec    %eax
4093ae:	74 20                	je     0x4093d0
4093b0:	83 e8 03             	sub    $0x3,%eax
4093b3:	74 12                	je     0x4093c7
4093b5:	48                   	dec    %eax
4093b6:	48                   	dec    %eax
4093b7:	0f 85 67 62 03 00    	jne    0x43f624
4093bd:	8a 01                	mov    (%ecx),%al
4093bf:	c3                   	ret
4093c0:	83 39 00             	cmpl   $0x0,(%ecx)
4093c3:	0f 95 c0             	setne  %al
4093c6:	c3                   	ret
4093c7:	33 c0                	xor    %eax,%eax
4093c9:	39 01                	cmp    %eax,(%ecx)
4093cb:	e9 62 62 03 00       	jmp    0x43f632
4093d0:	8b 49 08             	mov    0x8(%ecx),%ecx
4093d3:	33 c0                	xor    %eax,%eax
4093d5:	39 41 04             	cmp    %eax,0x4(%ecx)
4093d8:	e9 55 62 03 00       	jmp    0x43f632
4093dd:	83 79 0c 08          	cmpl   $0x8,0xc(%ecx)
4093e1:	0f 84 69 62 03 00    	je     0x43f650
4093e7:	32 c0                	xor    %al,%al
4093e9:	c3                   	ret
4093ea:	55                   	push   %ebp
4093eb:	8b ec                	mov    %esp,%ebp
4093ed:	56                   	push   %esi
4093ee:	6a 10                	push   $0x10
4093f0:	8b f1                	mov    %ecx,%esi
4093f2:	e8 ff 7b 01 00       	call   0x420ff6
4093f7:	8b d0                	mov    %eax,%edx
4093f9:	59                   	pop    %ecx
4093fa:	85 d2                	test   %edx,%edx
4093fc:	74 2c                	je     0x40942a
4093fe:	8b 45 08             	mov    0x8(%ebp),%eax
409401:	8b 08                	mov    (%eax),%ecx
409403:	89 0a                	mov    %ecx,(%edx)
409405:	8b 48 04             	mov    0x4(%eax),%ecx
409408:	89 4a 04             	mov    %ecx,0x4(%edx)
40940b:	8b 48 08             	mov    0x8(%eax),%ecx
40940e:	89 4a 08             	mov    %ecx,0x8(%edx)
409411:	8b 40 0c             	mov    0xc(%eax),%eax
409414:	89 42 0c             	mov    %eax,0xc(%edx)
409417:	ff 00                	incl   (%eax)
409419:	89 56 08             	mov    %edx,0x8(%esi)
40941c:	8b c6                	mov    %esi,%eax
40941e:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
409425:	5e                   	pop    %esi
409426:	5d                   	pop    %ebp
409427:	c2 04 00             	ret    $0x4
40942a:	33 d2                	xor    %edx,%edx
40942c:	eb eb                	jmp    0x409419
40942e:	56                   	push   %esi
40942f:	8b f1                	mov    %ecx,%esi
409431:	e8 ea 05 00 00       	call   0x409a20
409436:	6a 04                	push   $0x4
409438:	c7 46 0c 05 00 00 00 	movl   $0x5,0xc(%esi)
40943f:	e8 b2 7b 01 00       	call   0x420ff6
409444:	59                   	pop    %ecx
409445:	85 c0                	test   %eax,%eax
409447:	74 0b                	je     0x409454
409449:	8b c8                	mov    %eax,%ecx
40944b:	e8 0c ff ff ff       	call   0x40935c
409450:	89 06                	mov    %eax,(%esi)
409452:	5e                   	pop    %esi
409453:	c3                   	ret
409454:	33 c0                	xor    %eax,%eax
409456:	eb f8                	jmp    0x409450
409458:	56                   	push   %esi
409459:	8b f1                	mov    %ecx,%esi
40945b:	83 7e 0c 05          	cmpl   $0x5,0xc(%esi)
40945f:	74 21                	je     0x409482
409461:	e8 ba 05 00 00       	call   0x409a20
409466:	6a 04                	push   $0x4
409468:	c7 46 0c 05 00 00 00 	movl   $0x5,0xc(%esi)
40946f:	e8 82 7b 01 00       	call   0x420ff6
409474:	59                   	pop    %ecx
409475:	85 c0                	test   %eax,%eax
409477:	74 0b                	je     0x409484
409479:	8b c8                	mov    %eax,%ecx
40947b:	e8 dc fe ff ff       	call   0x40935c
409480:	89 06                	mov    %eax,(%esi)
409482:	5e                   	pop    %esi
409483:	c3                   	ret
409484:	33 c0                	xor    %eax,%eax
409486:	eb f8                	jmp    0x409480
409488:	56                   	push   %esi
409489:	8b f1                	mov    %ecx,%esi
40948b:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
40948f:	74 43                	je     0x4094d4
409491:	57                   	push   %edi
409492:	6a 10                	push   $0x10
409494:	e8 5d 7b 01 00       	call   0x420ff6
409499:	8b f8                	mov    %eax,%edi
40949b:	59                   	pop    %ecx
40949c:	85 ff                	test   %edi,%edi
40949e:	74 36                	je     0x4094d6
4094a0:	8b ce                	mov    %esi,%ecx
4094a2:	e8 f0 04 00 00       	call   0x409997
4094a7:	8b 56 08             	mov    0x8(%esi),%edx
4094aa:	8b 0a                	mov    (%edx),%ecx
4094ac:	89 0f                	mov    %ecx,(%edi)
4094ae:	8b 4a 04             	mov    0x4(%edx),%ecx
4094b1:	89 4f 04             	mov    %ecx,0x4(%edi)
4094b4:	8b 42 08             	mov    0x8(%edx),%eax
4094b7:	89 47 08             	mov    %eax,0x8(%edi)
4094ba:	8b 42 0c             	mov    0xc(%edx),%eax
4094bd:	89 47 0c             	mov    %eax,0xc(%edi)
4094c0:	ff 00                	incl   (%eax)
4094c2:	8b ce                	mov    %esi,%ecx
4094c4:	e8 57 05 00 00       	call   0x409a20
4094c9:	89 7e 08             	mov    %edi,0x8(%esi)
4094cc:	c7 46 0c 04 00 00 00 	movl   $0x4,0xc(%esi)
4094d3:	5f                   	pop    %edi
4094d4:	5e                   	pop    %esi
4094d5:	c3                   	ret
4094d6:	33 ff                	xor    %edi,%edi
4094d8:	eb e8                	jmp    0x4094c2
4094da:	56                   	push   %esi
4094db:	8b f1                	mov    %ecx,%esi
4094dd:	e8 60 07 00 00       	call   0x409c42
4094e2:	84 c0                	test   %al,%al
4094e4:	75 1d                	jne    0x409503
4094e6:	83 7e 0c 03          	cmpl   $0x3,0xc(%esi)
4094ea:	74 17                	je     0x409503
4094ec:	8b ce                	mov    %esi,%ecx
4094ee:	e8 13 01 00 00       	call   0x409606
4094f3:	8b ce                	mov    %esi,%ecx
4094f5:	5e                   	pop    %esi
4094f6:	84 c0                	test   %al,%al
4094f8:	0f 85 95 00 00 00    	jne    0x409593
4094fe:	e9 02 00 00 00       	jmp    0x409505
409503:	5e                   	pop    %esi
409504:	c3                   	ret
409505:	55                   	push   %ebp
409506:	8b ec                	mov    %esp,%ebp
409508:	51                   	push   %ecx
409509:	56                   	push   %esi
40950a:	8b f1                	mov    %ecx,%esi
40950c:	83 7e 0c 01          	cmpl   $0x1,0xc(%esi)
409510:	74 5e                	je     0x409570
409512:	83 7e 0c 02          	cmpl   $0x2,0xc(%esi)
409516:	74 58                	je     0x409570
409518:	53                   	push   %ebx
409519:	57                   	push   %edi
40951a:	e8 27 08 00 00       	call   0x409d46
40951f:	8b ca                	mov    %edx,%ecx
409521:	33 db                	xor    %ebx,%ebx
409523:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
409527:	8b f8                	mov    %eax,%edi
409529:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40952c:	75 0b                	jne    0x409539
40952e:	8b 56 08             	mov    0x8(%esi),%edx
409531:	8b 02                	mov    (%edx),%eax
409533:	66 83 38 30          	cmpw   $0x30,(%eax)
409537:	74 3c                	je     0x409575
409539:	83 f9 ff             	cmp    $0xffffffff,%ecx
40953c:	7c 51                	jl     0x40958f
40953e:	7f 08                	jg     0x409548
409540:	81 ff 00 00 00 80    	cmp    $0x80000000,%edi
409546:	72 47                	jb     0x40958f
409548:	3b cb                	cmp    %ebx,%ecx
40954a:	7c 0a                	jl     0x409556
40954c:	7f 41                	jg     0x40958f
40954e:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
409554:	77 39                	ja     0x40958f
409556:	8b ce                	mov    %esi,%ecx
409558:	e8 c3 04 00 00       	call   0x409a20
40955d:	89 3e                	mov    %edi,(%esi)
40955f:	84 db                	test   %bl,%bl
409561:	0f 85 11 61 03 00    	jne    0x43f678
409567:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
40956e:	5f                   	pop    %edi
40956f:	5b                   	pop    %ebx
409570:	5e                   	pop    %esi
409571:	8b e5                	mov    %ebp,%esp
409573:	5d                   	pop    %ebp
409574:	c3                   	ret
409575:	0f b7 40 02          	movzwl 0x2(%eax),%eax
409579:	83 f8 78             	cmp    $0x78,%eax
40957c:	74 05                	je     0x409583
40957e:	83 f8 58             	cmp    $0x58,%eax
409581:	75 b6                	jne    0x409539
409583:	83 7a 04 12          	cmpl   $0x12,0x4(%edx)
409587:	77 b0                	ja     0x409539
409589:	83 7a 04 0a          	cmpl   $0xa,0x4(%edx)
40958d:	eb c5                	jmp    0x409554
40958f:	b3 01                	mov    $0x1,%bl
409591:	eb c3                	jmp    0x409556
409593:	55                   	push   %ebp
409594:	8b ec                	mov    %esp,%ebp
409596:	51                   	push   %ecx
409597:	51                   	push   %ecx
409598:	56                   	push   %esi
409599:	8b f1                	mov    %ecx,%esi
40959b:	83 7e 0c 03          	cmpl   $0x3,0xc(%esi)
40959f:	74 1b                	je     0x4095bc
4095a1:	e8 52 07 00 00       	call   0x409cf8
4095a6:	8b ce                	mov    %esi,%ecx
4095a8:	dd 5d f8             	fstpl  -0x8(%ebp)
4095ab:	e8 70 04 00 00       	call   0x409a20
4095b0:	dd 45 f8             	fldl   -0x8(%ebp)
4095b3:	dd 1e                	fstpl  (%esi)
4095b5:	c7 46 0c 03 00 00 00 	movl   $0x3,0xc(%esi)
4095bc:	5e                   	pop    %esi
4095bd:	8b e5                	mov    %ebp,%esp
4095bf:	5d                   	pop    %ebp
4095c0:	c3                   	ret
4095c1:	83 79 0c 04          	cmpl   $0x4,0xc(%ecx)
4095c5:	75 09                	jne    0x4095d0
4095c7:	e8 13 00 00 00       	call   0x4095df
4095cc:	84 c0                	test   %al,%al
4095ce:	75 03                	jne    0x4095d3
4095d0:	32 c0                	xor    %al,%al
4095d2:	c3                   	ret
4095d3:	8b 41 08             	mov    0x8(%ecx),%eax
4095d6:	83 78 04 12          	cmpl   $0x12,0x4(%eax)
4095da:	77 f4                	ja     0x4095d0
4095dc:	b0 01                	mov    $0x1,%al
4095de:	c3                   	ret
4095df:	83 79 0c 04          	cmpl   $0x4,0xc(%ecx)
4095e3:	75 0b                	jne    0x4095f0
4095e5:	8b 41 08             	mov    0x8(%ecx),%eax
4095e8:	8b 00                	mov    (%eax),%eax
4095ea:	66 83 38 30          	cmpw   $0x30,(%eax)
4095ee:	74 03                	je     0x4095f3
4095f0:	32 c0                	xor    %al,%al
4095f2:	c3                   	ret
4095f3:	0f b7 40 02          	movzwl 0x2(%eax),%eax
4095f7:	83 f8 78             	cmp    $0x78,%eax
4095fa:	75 03                	jne    0x4095ff
4095fc:	b0 01                	mov    $0x1,%al
4095fe:	c3                   	ret
4095ff:	83 f8 58             	cmp    $0x58,%eax
409602:	75 ec                	jne    0x4095f0
409604:	eb f6                	jmp    0x4095fc
409606:	83 79 0c 04          	cmpl   $0x4,0xc(%ecx)
40960a:	56                   	push   %esi
40960b:	75 27                	jne    0x409634
40960d:	8b 41 08             	mov    0x8(%ecx),%eax
409610:	68 80 fb 48 00       	push   $0x48fb80
409615:	8b 30                	mov    (%eax),%esi
409617:	56                   	push   %esi
409618:	e8 9d a5 01 00       	call   0x423bba
40961d:	59                   	pop    %ecx
40961e:	59                   	pop    %ecx
40961f:	85 c0                	test   %eax,%eax
409621:	75 15                	jne    0x409638
409623:	68 7c fb 48 00       	push   $0x48fb7c
409628:	56                   	push   %esi
409629:	e8 8c a5 01 00       	call   0x423bba
40962e:	59                   	pop    %ecx
40962f:	59                   	pop    %ecx
409630:	85 c0                	test   %eax,%eax
409632:	75 04                	jne    0x409638
409634:	32 c0                	xor    %al,%al
409636:	5e                   	pop    %esi
409637:	c3                   	ret
409638:	b0 01                	mov    $0x1,%al
40963a:	5e                   	pop    %esi
40963b:	c3                   	ret
40963c:	55                   	push   %ebp
40963d:	8b ec                	mov    %esp,%ebp
40963f:	56                   	push   %esi