41c2dd:	8b 46 0c             	mov    0xc(%esi),%eax
41c2e0:	39 46 08             	cmp    %eax,0x8(%esi)
41c2e3:	74 32                	je     0x41c317
41c2e5:	6a 10                	push   $0x10
41c2e7:	e8 fe 31 00 00       	call   0x41f4ea
41c2ec:	8b f8                	mov    %eax,%edi
41c2ee:	59                   	pop    %ecx
41c2ef:	85 ff                	test   %edi,%edi
41c2f1:	0f 84 4a 62 05 00    	je     0x472541
41c2f7:	ff 75 08             	push   0x8(%ebp)
41c2fa:	83 67 08 00          	andl   $0x0,0x8(%edi)
41c2fe:	8b cf                	mov    %edi,%ecx
41c300:	e8 1b 54 ff ff       	call   0x411720
41c305:	8b 4e 08             	mov    0x8(%esi),%ecx
41c308:	8b 46 04             	mov    0x4(%esi),%eax
41c30b:	89 3c 88             	mov    %edi,(%eax,%ecx,4)
41c30e:	ff 46 08             	incl   0x8(%esi)
41c311:	5f                   	pop    %edi
41c312:	5e                   	pop    %esi
41c313:	5d                   	pop    %ebp
41c314:	c2 04 00             	ret    $0x4
41c317:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
41c31a:	6a 08                	push   $0x8
41c31c:	58                   	pop    %eax
41c31d:	3b c8                	cmp    %eax,%ecx
41c31f:	73 25                	jae    0x41c346
41c321:	33 c9                	xor    %ecx,%ecx
41c323:	6a 04                	push   $0x4
41c325:	5a                   	pop    %edx
41c326:	89 46 0c             	mov    %eax,0xc(%esi)
41c329:	f7 e2                	mul    %edx
41c32b:	0f 90 c1             	seto   %cl
41c32e:	f7 d9                	neg    %ecx
41c330:	0b c8                	or     %eax,%ecx
41c332:	51                   	push   %ecx
41c333:	e8 b2 31 00 00       	call   0x41f4ea
41c338:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
41c33c:	59                   	pop    %ecx
41c33d:	8b f8                	mov    %eax,%edi
41c33f:	75 09                	jne    0x41c34a
41c341:	89 7e 04             	mov    %edi,0x4(%esi)
41c344:	eb 9f                	jmp    0x41c2e5
41c346:	8b c1                	mov    %ecx,%eax
41c348:	eb d7                	jmp    0x41c321
41c34a:	8b 46 08             	mov    0x8(%esi),%eax
41c34d:	85 c0                	test   %eax,%eax
41c34f:	74 f0                	je     0x41c341
41c351:	c1 e0 02             	shl    $0x2,%eax
41c354:	50                   	push   %eax
41c355:	ff 76 04             	push   0x4(%esi)
41c358:	57                   	push   %edi
41c359:	e8 22 2b 00 00       	call   0x41ee80
41c35e:	ff 76 04             	push   0x4(%esi)
41c361:	e8 f8 31 00 00       	call   0x41f55e
41c366:	83 c4 10             	add    $0x10,%esp
41c369:	eb d6                	jmp    0x41c341
41c36b:	55                   	push   %ebp
41c36c:	8b ec                	mov    %esp,%ebp
41c36e:	51                   	push   %ecx
41c36f:	8b 45 10             	mov    0x10(%ebp),%eax
41c372:	53                   	push   %ebx
41c373:	56                   	push   %esi
41c374:	8b 75 0c             	mov    0xc(%ebp),%esi
41c377:	57                   	push   %edi
41c378:	ff 06                	incl   (%esi)
41c37a:	8b 16                	mov    (%esi),%edx
41c37c:	89 10                	mov    %edx,(%eax)
41c37e:	8b 45 08             	mov    0x8(%ebp),%eax
41c381:	8b d9                	mov    %ecx,%ebx
41c383:	8b 48 04             	mov    0x4(%eax),%ecx
41c386:	33 ff                	xor    %edi,%edi
41c388:	8b 04 91             	mov    (%ecx,%edx,4),%eax
41c38b:	0f bf 40 08          	movswl 0x8(%eax),%eax
41c38f:	83 e8 47             	sub    $0x47,%eax
41c392:	74 2c                	je     0x41c3c0
41c394:	48                   	dec    %eax
41c395:	74 0e                	je     0x41c3a5
41c397:	83 e8 37             	sub    $0x37,%eax
41c39a:	0f 84 a6 aa 05 00    	je     0x476e46
41c3a0:	42                   	inc    %edx
41c3a1:	89 16                	mov    %edx,(%esi)
41c3a3:	eb e3                	jmp    0x41c388
41c3a5:	85 ff                	test   %edi,%edi
41c3a7:	75 14                	jne    0x41c3bd
41c3a9:	8b 45 14             	mov    0x14(%ebp),%eax
41c3ac:	89 10                	mov    %edx,(%eax)
41c3ae:	8d 42 01             	lea    0x1(%edx),%eax
41c3b1:	89 06                	mov    %eax,(%esi)
41c3b3:	33 c0                	xor    %eax,%eax
41c3b5:	5f                   	pop    %edi
41c3b6:	5e                   	pop    %esi
41c3b7:	5b                   	pop    %ebx
41c3b8:	59                   	pop    %ecx
41c3b9:	5d                   	pop    %ebp
41c3ba:	c2 10 00             	ret    $0x10
41c3bd:	4f                   	dec    %edi
41c3be:	eb e0                	jmp    0x41c3a0
41c3c0:	47                   	inc    %edi
41c3c1:	eb dd                	jmp    0x41c3a0
41c3c3:	55                   	push   %ebp
41c3c4:	8b ec                	mov    %esp,%ebp
41c3c6:	56                   	push   %esi
41c3c7:	8b f1                	mov    %ecx,%esi
41c3c9:	8b 46 0c             	mov    0xc(%esi),%eax
41c3cc:	39 46 08             	cmp    %eax,0x8(%esi)
41c3cf:	74 2a                	je     0x41c3fb
41c3d1:	6a 01                	push   $0x1
41c3d3:	e8 12 31 00 00       	call   0x41f4ea
41c3d8:	8b d0                	mov    %eax,%edx
41c3da:	59                   	pop    %ecx
41c3db:	85 d2                	test   %edx,%edx
41c3dd:	0f 84 65 61 05 00    	je     0x472548
41c3e3:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c3e6:	8a 09                	mov    (%ecx),%cl
41c3e8:	88 0a                	mov    %cl,(%edx)
41c3ea:	8b 4e 08             	mov    0x8(%esi),%ecx
41c3ed:	8b 46 04             	mov    0x4(%esi),%eax
41c3f0:	89 14 88             	mov    %edx,(%eax,%ecx,4)
41c3f3:	ff 46 08             	incl   0x8(%esi)
41c3f6:	5e                   	pop    %esi
41c3f7:	5d                   	pop    %ebp
41c3f8:	c2 04 00             	ret    $0x4
41c3fb:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
41c3fe:	6a 08                	push   $0x8
41c400:	58                   	pop    %eax
41c401:	3b c8                	cmp    %eax,%ecx
41c403:	73 27                	jae    0x41c42c
41c405:	57                   	push   %edi
41c406:	33 c9                	xor    %ecx,%ecx
41c408:	6a 04                	push   $0x4
41c40a:	5a                   	pop    %edx
41c40b:	89 46 0c             	mov    %eax,0xc(%esi)
41c40e:	f7 e2                	mul    %edx
41c410:	0f 90 c1             	seto   %cl
41c413:	f7 d9                	neg    %ecx
41c415:	0b c8                	or     %eax,%ecx
41c417:	51                   	push   %ecx
41c418:	e8 cd 30 00 00       	call   0x41f4ea
41c41d:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
41c421:	59                   	pop    %ecx
41c422:	8b f8                	mov    %eax,%edi
41c424:	75 0a                	jne    0x41c430
41c426:	89 7e 04             	mov    %edi,0x4(%esi)
41c429:	5f                   	pop    %edi
41c42a:	eb a5                	jmp    0x41c3d1
41c42c:	8b c1                	mov    %ecx,%eax
41c42e:	eb d5                	jmp    0x41c405
41c430:	8b 46 08             	mov    0x8(%esi),%eax
41c433:	85 c0                	test   %eax,%eax
41c435:	74 ef                	je     0x41c426
41c437:	c1 e0 02             	shl    $0x2,%eax
41c43a:	50                   	push   %eax
41c43b:	ff 76 04             	push   0x4(%esi)
41c43e:	57                   	push   %edi
41c43f:	e8 3c 2a 00 00       	call   0x41ee80
41c444:	ff 76 04             	push   0x4(%esi)
41c447:	e8 12 31 00 00       	call   0x41f55e
41c44c:	83 c4 10             	add    $0x10,%esp
41c44f:	eb d5                	jmp    0x41c426
41c451:	55                   	push   %ebp
41c452:	8b ec                	mov    %esp,%ebp
41c454:	83 ec 0c             	sub    $0xc,%esp
41c457:	53                   	push   %ebx
41c458:	56                   	push   %esi
41c459:	8b c1                	mov    %ecx,%eax
41c45b:	57                   	push   %edi
41c45c:	50                   	push   %eax
41c45d:	8b f2                	mov    %edx,%esi
41c45f:	89 45 f4             	mov    %eax,-0xc(%ebp)
41c462:	e8 74 48 00 00       	call   0x420cdb
41c467:	83 26 00             	andl   $0x0,(%esi)
41c46a:	83 66 04 00          	andl   $0x0,0x4(%esi)
41c46e:	59                   	pop    %ecx
41c46f:	33 c9                	xor    %ecx,%ecx
41c471:	21 4d f8             	and    %ecx,-0x8(%ebp)
41c474:	33 db                	xor    %ebx,%ebx
41c476:	43                   	inc    %ebx
41c477:	8d 78 ff             	lea    -0x1(%eax),%edi
41c47a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41c47d:	39 4d 08             	cmp    %ecx,0x8(%ebp)
41c480:	7e 46                	jle    0x41c4c8
41c482:	6a 30                	push   $0x30
41c484:	5a                   	pop    %edx
41c485:	85 ff                	test   %edi,%edi
41c487:	78 3f                	js     0x41c4c8
41c489:	8b 45 f4             	mov    -0xc(%ebp),%eax
41c48c:	0f b7 04 78          	movzwl (%eax,%edi,2),%eax
41c490:	83 f8 39             	cmp    $0x39,%eax
41c493:	77 3f                	ja     0x41c4d4
41c495:	66 3b c2             	cmp    %dx,%ax
41c498:	72 3a                	jb     0x41c4d4
41c49a:	2b c2                	sub    %edx,%eax
41c49c:	51                   	push   %ecx
41c49d:	99                   	cltd
41c49e:	53                   	push   %ebx
41c49f:	52                   	push   %edx
41c4a0:	50                   	push   %eax
41c4a1:	e8 4a 79 01 00       	call   0x433df0
41c4a6:	01 06                	add    %eax,(%esi)
41c4a8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41c4ab:	8b 45 f8             	mov    -0x8(%ebp),%eax
41c4ae:	11 56 04             	adc    %edx,0x4(%esi)
41c4b1:	0f a4 d9 04          	shld   $0x4,%ebx,%ecx
41c4b5:	4f                   	dec    %edi
41c4b6:	c1 e3 04             	shl    $0x4,%ebx
41c4b9:	40                   	inc    %eax
41c4ba:	6a 30                	push   $0x30
41c4bc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41c4bf:	89 45 f8             	mov    %eax,-0x8(%ebp)
41c4c2:	5a                   	pop    %edx
41c4c3:	3b 45 08             	cmp    0x8(%ebp),%eax
41c4c6:	7c bd                	jl     0x41c485
41c4c8:	83 ff ff             	cmp    $0xffffffff,%edi
41c4cb:	75 1e                	jne    0x41c4eb
41c4cd:	b0 01                	mov    $0x1,%al
41c4cf:	5f                   	pop    %edi
41c4d0:	5e                   	pop    %esi
41c4d1:	5b                   	pop    %ebx
41c4d2:	c9                   	leave
41c4d3:	c3                   	ret
41c4d4:	83 f8 41             	cmp    $0x41,%eax
41c4d7:	0f 82 ba 7d 05 00    	jb     0x474297
41c4dd:	83 f8 46             	cmp    $0x46,%eax
41c4e0:	0f 87 b1 7d 05 00    	ja     0x474297
41c4e6:	83 e8 37             	sub    $0x37,%eax
41c4e9:	eb b1                	jmp    0x41c49c
41c4eb:	83 26 00             	andl   $0x0,(%esi)
41c4ee:	83 66 04 00          	andl   $0x0,0x4(%esi)
41c4f2:	32 c0                	xor    %al,%al
41c4f4:	eb d9                	jmp    0x41c4cf
41c4f6:	55                   	push   %ebp
41c4f7:	8b ec                	mov    %esp,%ebp
41c4f9:	83 ec 1c             	sub    $0x1c,%esp
41c4fc:	53                   	push   %ebx
41c4fd:	56                   	push   %esi
41c4fe:	8b 75 08             	mov    0x8(%ebp),%esi
41c501:	57                   	push   %edi
41c502:	8b 46 04             	mov    0x4(%esi),%eax
41c505:	8b d9                	mov    %ecx,%ebx
41c507:	8b 40 04             	mov    0x4(%eax),%eax
41c50a:	33 c9                	xor    %ecx,%ecx
41c50c:	6a 7f                	push   $0x7f
41c50e:	41                   	inc    %ecx
41c50f:	5f                   	pop    %edi
41c510:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41c513:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41c516:	66 39 78 08          	cmp    %di,0x8(%eax)
41c51a:	0f 85 c2 a9 05 00    	jne    0x476ee2
41c520:	8b f1                	mov    %ecx,%esi
41c522:	83 65 08 00          	andl   $0x0,0x8(%ebp)
41c526:	85 f6                	test   %esi,%esi
41c528:	7e 7e                	jle    0x41c5a8
41c52a:	8d bb 60 01 00 00    	lea    0x160(%ebx),%edi
41c530:	83 3f 00             	cmpl   $0x0,(%edi)
41c533:	0f 84 28 aa 05 00    	je     0x476f61
41c539:	8a 4f 09             	mov    0x9(%edi),%cl
41c53c:	8b 47 04             	mov    0x4(%edi),%eax
41c53f:	84 c9                	test   %cl,%cl
41c541:	75 6c                	jne    0x41c5af
41c543:	8b d0                	mov    %eax,%edx
41c545:	83 3a 01             	cmpl   $0x1,(%edx)
41c548:	74 1a                	je     0x41c564
41c54a:	84 c9                	test   %cl,%cl
41c54c:	75 66                	jne    0x41c5b4
41c54e:	8b d0                	mov    %eax,%edx
41c550:	83 3a 02             	cmpl   $0x2,(%edx)
41c553:	74 0f                	je     0x41c564
41c555:	84 c9                	test   %cl,%cl
41c557:	75 60                	jne    0x41c5b9
41c559:	8b d0                	mov    %eax,%edx
41c55b:	83 3a 03             	cmpl   $0x3,(%edx)
41c55e:	0f 85 e6 a9 05 00    	jne    0x476f4a
41c564:	84 c9                	test   %cl,%cl
41c566:	75 56                	jne    0x41c5be
41c568:	8b d0                	mov    %eax,%edx
41c56a:	8b 7d 0c             	mov    0xc(%ebp),%edi
41c56d:	8b 3f                	mov    (%edi),%edi
41c56f:	3b 7a 04             	cmp    0x4(%edx),%edi
41c572:	7e 59                	jle    0x41c5cd
41c574:	84 c9                	test   %cl,%cl
41c576:	75 4b                	jne    0x41c5c3
41c578:	8b d0                	mov    %eax,%edx
41c57a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41c57d:	8b 3b                	mov    (%ebx),%edi
41c57f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
41c582:	3b 7a 08             	cmp    0x8(%edx),%edi
41c585:	8d bb 60 01 00 00    	lea    0x160(%ebx),%edi
41c58b:	7f 40                	jg     0x41c5cd
41c58d:	8b 55 08             	mov    0x8(%ebp),%edx
41c590:	42                   	inc    %edx
41c591:	89 55 08             	mov    %edx,0x8(%ebp)
41c594:	84 c9                	test   %cl,%cl
41c596:	75 30                	jne    0x41c5c8
41c598:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41c59b:	8b 40 08             	mov    0x8(%eax),%eax
41c59e:	89 01                	mov    %eax,(%ecx)
41c5a0:	3b d6                	cmp    %esi,%edx
41c5a2:	0f 85 a2 a9 05 00    	jne    0x476f4a
41c5a8:	5f                   	pop    %edi
41c5a9:	5e                   	pop    %esi
41c5aa:	5b                   	pop    %ebx
41c5ab:	c9                   	leave
41c5ac:	c2 08 00             	ret    $0x8
41c5af:	8b 50 30             	mov    0x30(%eax),%edx
41c5b2:	eb 91                	jmp    0x41c545
41c5b4:	8b 50 30             	mov    0x30(%eax),%edx
41c5b7:	eb 97                	jmp    0x41c550
41c5b9:	8b 50 30             	mov    0x30(%eax),%edx
41c5bc:	eb 9d                	jmp    0x41c55b
41c5be:	8b 50 30             	mov    0x30(%eax),%edx
41c5c1:	eb a7                	jmp    0x41c56a
41c5c3:	8b 50 30             	mov    0x30(%eax),%edx
41c5c6:	eb b2                	jmp    0x41c57a
41c5c8:	8b 40 30             	mov    0x30(%eax),%eax
41c5cb:	eb cb                	jmp    0x41c598
41c5cd:	6a ff                	push   $0xffffffff
41c5cf:	68 8f 00 00 00       	push   $0x8f
41c5d4:	e9 8f a9 05 00       	jmp    0x476f68
41c5d9:	56                   	push   %esi
41c5da:	8b f1                	mov    %ecx,%esi
41c5dc:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
41c5e0:	74 16                	je     0x41c5f8
41c5e2:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
41c5e6:	57                   	push   %edi
41c5e7:	75 14                	jne    0x41c5fd
41c5e9:	80 7e 0c 00          	cmpb   $0x0,0xc(%esi)
41c5ed:	0f 84 f9 7d 05 00    	je     0x4743ec
41c5f3:	c6 46 0d 01          	movb   $0x1,0xd(%esi)
41c5f7:	5f                   	pop    %edi
41c5f8:	ff 4e 04             	decl   0x4(%esi)
41c5fb:	5e                   	pop    %esi
41c5fc:	c3                   	ret
41c5fd:	8b 4e 08             	mov    0x8(%esi),%ecx
41c600:	8b 79 10             	mov    0x10(%ecx),%edi
41c603:	85 c9                	test   %ecx,%ecx
41c605:	74 06                	je     0x41c60d
41c607:	51                   	push   %ecx
41c608:	e8 09 00 00 00       	call   0x41c616
41c60d:	89 7e 08             	mov    %edi,0x8(%esi)
41c610:	c6 46 0d 00          	movb   $0x0,0xd(%esi)
41c614:	eb d3                	jmp    0x41c5e9
41c616:	56                   	push   %esi
41c617:	8b f1                	mov    %ecx,%esi
41c619:	e8 02 66 ff ff       	call   0x412c20
41c61e:	56                   	push   %esi
41c61f:	e8 3a 2f 00 00       	call   0x41f55e
41c624:	59                   	pop    %ecx
41c625:	8b c6                	mov    %esi,%eax
41c627:	5e                   	pop    %esi
41c628:	c2 04 00             	ret    $0x4