41139e:	66 3b cf             	cmp    %di,%cx
4113a1:	75 05                	jne    0x4113a8
4113a3:	89 56 24             	mov    %edx,0x24(%esi)
4113a6:	8b c2                	mov    %edx,%eax
4113a8:	ff 76 08             	push   0x8(%esi)
4113ab:	05 5d 01 00 00       	add    $0x15d,%eax
4113b0:	8d 7e 3c             	lea    0x3c(%esi),%edi
4113b3:	50                   	push   %eax
4113b4:	8b cf                	mov    %edi,%ecx
4113b6:	e8 64 c6 ff ff       	call   0x40da1f
4113bb:	84 c0                	test   %al,%al
4113bd:	75 12                	jne    0x4113d1
4113bf:	8b cf                	mov    %edi,%ecx
4113c1:	e8 28 c6 ff ff       	call   0x40d9ee
4113c6:	8d 98 a3 fe ff ff    	lea    -0x15d(%eax),%ebx
4113cc:	89 5e 24             	mov    %ebx,0x24(%esi)
4113cf:	eb 03                	jmp    0x4113d4
4113d1:	8b 5e 24             	mov    0x24(%esi),%ebx
4113d4:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
4113da:	85 c0                	test   %eax,%eax
4113dc:	75 02                	jne    0x4113e0
4113de:	8b c7                	mov    %edi,%eax
4113e0:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
4113e4:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
4113e8:	89 46 30             	mov    %eax,0x30(%esi)
4113eb:	8b 4e 10             	mov    0x10(%esi),%ecx
4113ee:	8d 41 08             	lea    0x8(%ecx),%eax
4113f1:	89 46 10             	mov    %eax,0x10(%esi)
4113f4:	8b 01                	mov    (%ecx),%eax
4113f6:	8b 49 04             	mov    0x4(%ecx),%ecx
4113f9:	89 45 ec             	mov    %eax,-0x14(%ebp)
4113fc:	0f be 46 2e          	movsbl 0x2e(%esi),%eax
411400:	89 4d f0             	mov    %ecx,-0x10(%ebp)
411403:	8b cf                	mov    %edi,%ecx
411405:	89 45 fc             	mov    %eax,-0x4(%ebp)
411408:	e8 e1 c5 ff ff       	call   0x40d9ee
41140d:	8b cf                	mov    %edi,%ecx
41140f:	89 45 f8             	mov    %eax,-0x8(%ebp)
411412:	e8 bb cf ff ff       	call   0x40e3d2
411417:	8b cf                	mov    %edi,%ecx
411419:	89 45 f4             	mov    %eax,-0xc(%ebp)
41141c:	e8 cd c5 ff ff       	call   0x40d9ee
411421:	8b c8                	mov    %eax,%ecx
411423:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
411429:	85 c0                	test   %eax,%eax
41142b:	74 02                	je     0x41142f
41142d:	8b f8                	mov    %eax,%edi
41142f:	ff 76 08             	push   0x8(%esi)
411432:	8d 45 ec             	lea    -0x14(%ebp),%eax
411435:	6a 01                	push   $0x1
411437:	ff 76 04             	push   0x4(%esi)
41143a:	ff 36                	push   (%esi)
41143c:	53                   	push   %ebx
41143d:	ff 75 fc             	push   -0x4(%ebp)
411440:	ff 75 f8             	push   -0x8(%ebp)
411443:	ff 75 f4             	push   -0xc(%ebp)
411446:	51                   	push   %ecx
411447:	57                   	push   %edi
411448:	50                   	push   %eax
411449:	e8 9c bf 00 00       	call   0x41d3ea
41144e:	8b 46 1c             	mov    0x1c(%esi),%eax
411451:	83 c4 2c             	add    $0x2c,%esp
411454:	c1 e8 05             	shr    $0x5,%eax
411457:	a8 01                	test   $0x1,%al
411459:	74 24                	je     0x41147f
41145b:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
41145f:	75 1e                	jne    0x41147f
411461:	8b 7e 08             	mov    0x8(%esi),%edi
411464:	80 7f 14 00          	cmpb   $0x0,0x14(%edi)
411468:	75 07                	jne    0x411471
41146a:	8b cf                	mov    %edi,%ecx
41146c:	e8 4f 04 00 00       	call   0x4118c0
411471:	8d 47 0c             	lea    0xc(%edi),%eax
411474:	50                   	push   %eax
411475:	ff 76 30             	push   0x30(%esi)
411478:	e8 11 e2 ff ff       	call   0x40f68e
41147d:	59                   	pop    %ecx
41147e:	59                   	pop    %ecx
41147f:	0f b7 46 2e          	movzwl 0x2e(%esi),%eax
411483:	6a 67                	push   $0x67
411485:	59                   	pop    %ecx
411486:	66 3b c1             	cmp    %cx,%ax
411489:	74 08                	je     0x411493
41148b:	6a 47                	push   $0x47
41148d:	59                   	pop    %ecx
41148e:	66 3b c1             	cmp    %cx,%ax
411491:	75 28                	jne    0x4114bb
411493:	8b 46 1c             	mov    0x1c(%esi),%eax
411496:	c1 e8 05             	shr    $0x5,%eax
411499:	a8 01                	test   $0x1,%al
41149b:	75 1e                	jne    0x4114bb
41149d:	8b 7e 08             	mov    0x8(%esi),%edi
4114a0:	80 7f 14 00          	cmpb   $0x0,0x14(%edi)
4114a4:	75 07                	jne    0x4114ad
4114a6:	8b cf                	mov    %edi,%ecx
4114a8:	e8 13 04 00 00       	call   0x4118c0
4114ad:	8d 47 0c             	lea    0xc(%edi),%eax
4114b0:	50                   	push   %eax
4114b1:	ff 76 30             	push   0x30(%esi)
4114b4:	e8 c4 e0 ff ff       	call   0x40f57d
4114b9:	59                   	pop    %ecx
4114ba:	59                   	pop    %ecx
4114bb:	8b 56 30             	mov    0x30(%esi),%edx
4114be:	8a 02                	mov    (%edx),%al
4114c0:	3c 2d                	cmp    $0x2d,%al
4114c2:	75 0a                	jne    0x4114ce
4114c4:	83 4e 1c 40          	orl    $0x40,0x1c(%esi)
4114c8:	42                   	inc    %edx
4114c9:	89 56 30             	mov    %edx,0x30(%esi)
4114cc:	8a 02                	mov    (%edx),%al
4114ce:	3c 69                	cmp    $0x69,%al
4114d0:	74 0c                	je     0x4114de
4114d2:	3c 49                	cmp    $0x49,%al
4114d4:	74 08                	je     0x4114de
4114d6:	3c 6e                	cmp    $0x6e,%al
4114d8:	74 04                	je     0x4114de
4114da:	3c 4e                	cmp    $0x4e,%al
4114dc:	75 0b                	jne    0x4114e9
4114de:	83 66 1c f7          	andl   $0xfffffff7,0x1c(%esi)
4114e2:	6a 73                	push   $0x73
4114e4:	58                   	pop    %eax
4114e5:	66 89 46 2e          	mov    %ax,0x2e(%esi)
4114e9:	8d 7a 01             	lea    0x1(%edx),%edi
4114ec:	8a 0a                	mov    (%edx),%cl
4114ee:	42                   	inc    %edx
4114ef:	84 c9                	test   %cl,%cl
4114f1:	75 f9                	jne    0x4114ec
4114f3:	2b d7                	sub    %edi,%edx
4114f5:	b0 01                	mov    $0x1,%al
4114f7:	5f                   	pop    %edi
4114f8:	89 56 34             	mov    %edx,0x34(%esi)
4114fb:	5e                   	pop    %esi
4114fc:	5b                   	pop    %ebx
4114fd:	c9                   	leave
4114fe:	c3                   	ret
4114ff:	8b ff                	mov    %edi,%edi
411501:	56                   	push   %esi
411502:	8b f1                	mov    %ecx,%esi
411504:	57                   	push   %edi
411505:	ff 76 28             	push   0x28(%esi)
411508:	0f b6 46 2d          	movzbl 0x2d(%esi),%eax
41150c:	8d 7e 3c             	lea    0x3c(%esi),%edi
41150f:	50                   	push   %eax
411510:	ff 76 04             	push   0x4(%esi)
411513:	ff 36                	push   (%esi)
411515:	e8 3c c6 ff ff       	call   0x40db56
41151a:	83 c4 10             	add    $0x10,%esp
41151d:	84 c0                	test   %al,%al
41151f:	74 3d                	je     0x41155e
411521:	8b 4e 10             	mov    0x10(%esi),%ecx
411524:	53                   	push   %ebx
411525:	8d 41 04             	lea    0x4(%ecx),%eax
411528:	89 46 10             	mov    %eax,0x10(%esi)
41152b:	0f b7 19             	movzwl (%ecx),%ebx
41152e:	8b cf                	mov    %edi,%ecx
411530:	e8 b9 c4 ff ff       	call   0x40d9ee
411535:	8b 8f 04 04 00 00    	mov    0x404(%edi),%ecx
41153b:	85 c9                	test   %ecx,%ecx
41153d:	75 02                	jne    0x411541
41153f:	8b cf                	mov    %edi,%ecx
411541:	ff 76 08             	push   0x8(%esi)
411544:	53                   	push   %ebx
411545:	50                   	push   %eax
411546:	51                   	push   %ecx
411547:	8d 46 34             	lea    0x34(%esi),%eax
41154a:	50                   	push   %eax
41154b:	e8 1b c0 00 00       	call   0x41d56b
411550:	83 c4 14             	add    $0x14,%esp
411553:	5b                   	pop    %ebx
411554:	85 c0                	test   %eax,%eax
411556:	74 26                	je     0x41157e
411558:	c6 46 2c 01          	movb   $0x1,0x2c(%esi)
41155c:	eb 20                	jmp    0x41157e
41155e:	8b 97 04 04 00 00    	mov    0x404(%edi),%edx
411564:	85 d2                	test   %edx,%edx
411566:	75 02                	jne    0x41156a
411568:	8b d7                	mov    %edi,%edx
41156a:	8b 4e 10             	mov    0x10(%esi),%ecx
41156d:	8d 41 04             	lea    0x4(%ecx),%eax
411570:	89 46 10             	mov    %eax,0x10(%esi)
411573:	8a 01                	mov    (%ecx),%al
411575:	88 02                	mov    %al,(%edx)
411577:	c7 46 34 01 00 00 00 	movl   $0x1,0x34(%esi)
41157e:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
411584:	85 c0                	test   %eax,%eax
411586:	74 02                	je     0x41158a
411588:	8b f8                	mov    %eax,%edi
41158a:	89 7e 30             	mov    %edi,0x30(%esi)
41158d:	b0 01                	mov    $0x1,%al
41158f:	5f                   	pop    %edi
411590:	5e                   	pop    %esi
411591:	c2 04 00             	ret    $0x4
411594:	8b ff                	mov    %edi,%edi
411596:	55                   	push   %ebp
411597:	8b ec                	mov    %esp,%ebp
411599:	51                   	push   %ecx
41159a:	53                   	push   %ebx
41159b:	56                   	push   %esi
41159c:	8b f1                	mov    %ecx,%esi
41159e:	57                   	push   %edi
41159f:	8b 56 10             	mov    0x10(%esi),%edx
4115a2:	c6 46 38 01          	movb   $0x1,0x38(%esi)
4115a6:	8d 42 04             	lea    0x4(%edx),%eax
4115a9:	89 46 10             	mov    %eax,0x10(%esi)
4115ac:	ff 76 28             	push   0x28(%esi)
4115af:	0f b7 46 2e          	movzwl 0x2e(%esi),%eax
4115b3:	0f b7 1a             	movzwl (%edx),%ebx
4115b6:	50                   	push   %eax
4115b7:	ff 76 04             	push   0x4(%esi)
4115ba:	ff 36                	push   (%esi)
4115bc:	e8 c6 c5 ff ff       	call   0x40db87
4115c1:	83 c4 10             	add    $0x10,%esp
4115c4:	84 c0                	test   %al,%al
4115c6:	75 43                	jne    0x41160b
4115c8:	88 5d fc             	mov    %bl,-0x4(%ebp)
4115cb:	8b 5e 08             	mov    0x8(%esi),%ebx
4115ce:	88 45 fd             	mov    %al,-0x3(%ebp)
4115d1:	38 43 14             	cmp    %al,0x14(%ebx)
4115d4:	75 07                	jne    0x4115dd
4115d6:	8b cb                	mov    %ebx,%ecx
4115d8:	e8 e3 02 00 00       	call   0x4118c0
4115dd:	8b 43 0c             	mov    0xc(%ebx),%eax
4115e0:	8d 7e 3c             	lea    0x3c(%esi),%edi
4115e3:	8b 48 04             	mov    0x4(%eax),%ecx
4115e6:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
4115ec:	85 c0                	test   %eax,%eax
4115ee:	75 02                	jne    0x4115f2
4115f0:	8b c7                	mov    %edi,%eax
4115f2:	53                   	push   %ebx
4115f3:	51                   	push   %ecx
4115f4:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4115f7:	51                   	push   %ecx
4115f8:	50                   	push   %eax
4115f9:	e8 d7 c0 00 00       	call   0x41d6d5
4115fe:	83 c4 10             	add    $0x10,%esp
411601:	85 c0                	test   %eax,%eax
411603:	79 18                	jns    0x41161d
411605:	c6 46 2c 01          	movb   $0x1,0x2c(%esi)
411609:	eb 12                	jmp    0x41161d
41160b:	8d 7e 3c             	lea    0x3c(%esi),%edi
41160e:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
411614:	85 c0                	test   %eax,%eax
411616:	75 02                	jne    0x41161a
411618:	8b c7                	mov    %edi,%eax
41161a:	66 89 18             	mov    %bx,(%eax)
41161d:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
411623:	85 c0                	test   %eax,%eax
411625:	74 02                	je     0x411629
411627:	8b f8                	mov    %eax,%edi
411629:	89 7e 30             	mov    %edi,0x30(%esi)
41162c:	b0 01                	mov    $0x1,%al
41162e:	5f                   	pop    %edi
41162f:	c7 46 34 01 00 00 00 	movl   $0x1,0x34(%esi)
411636:	5e                   	pop    %esi
411637:	5b                   	pop    %ebx
411638:	c9                   	leave
411639:	c2 04 00             	ret    $0x4
41163c:	8b ff                	mov    %edi,%edi
41163e:	56                   	push   %esi
41163f:	8b f1                	mov    %ecx,%esi
411641:	57                   	push   %edi
411642:	8b 56 10             	mov    0x10(%esi),%edx
411645:	8d 42 04             	lea    0x4(%edx),%eax
411648:	89 46 10             	mov    %eax,0x10(%esi)
41164b:	8b 3a                	mov    (%edx),%edi
41164d:	e8 a7 c3 00 00       	call   0x41d9f9
411652:	85 c0                	test   %eax,%eax
411654:	75 24                	jne    0x41167a
411656:	8b 46 08             	mov    0x8(%esi),%eax
411659:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41165d:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
411664:	33 c0                	xor    %eax,%eax
411666:	ff 76 08             	push   0x8(%esi)
411669:	50                   	push   %eax
41166a:	50                   	push   %eax
41166b:	50                   	push   %eax
41166c:	50                   	push   %eax
41166d:	50                   	push   %eax
41166e:	e8 fe bc ff ff       	call   0x40d371
411673:	83 c4 18             	add    $0x18,%esp
411676:	32 c0                	xor    %al,%al
411678:	eb 44                	jmp    0x4116be
41167a:	ff 76 28             	push   0x28(%esi)
41167d:	e8 2b fa ff ff       	call   0x4110ad
411682:	59                   	pop    %ecx
411683:	83 e8 01             	sub    $0x1,%eax
411686:	74 2b                	je     0x4116b3
411688:	83 e8 01             	sub    $0x1,%eax
41168b:	74 1d                	je     0x4116aa
41168d:	48                   	dec    %eax
41168e:	83 e8 01             	sub    $0x1,%eax
411691:	74 10                	je     0x4116a3
411693:	83 e8 04             	sub    $0x4,%eax
411696:	75 be                	jne    0x411656
411698:	8b 46 14             	mov    0x14(%esi),%eax
41169b:	99                   	cltd
41169c:	89 07                	mov    %eax,(%edi)
41169e:	89 57 04             	mov    %edx,0x4(%edi)
4116a1:	eb 15                	jmp    0x4116b8
4116a3:	8b 46 14             	mov    0x14(%esi),%eax
4116a6:	89 07                	mov    %eax,(%edi)
4116a8:	eb 0e                	jmp    0x4116b8
4116aa:	66 8b 46 14          	mov    0x14(%esi),%ax
4116ae:	66 89 07             	mov    %ax,(%edi)
4116b1:	eb 05                	jmp    0x4116b8
4116b3:	8a 46 14             	mov    0x14(%esi),%al
4116b6:	88 07                	mov    %al,(%edi)
4116b8:	c6 46 2c 01          	movb   $0x1,0x2c(%esi)
4116bc:	b0 01                	mov    $0x1,%al
4116be:	5f                   	pop    %edi
4116bf:	5e                   	pop    %esi
4116c0:	c3                   	ret
4116c1:	8b 51 1c             	mov    0x1c(%ecx),%edx
4116c4:	8b c2                	mov    %edx,%eax
4116c6:	c1 e8 05             	shr    $0x5,%eax
4116c9:	a8 01                	test   $0x1,%al
4116cb:	74 09                	je     0x4116d6
4116cd:	81 ca 80 00 00 00    	or     $0x80,%edx
4116d3:	89 51 1c             	mov    %edx,0x1c(%ecx)
4116d6:	6a 00                	push   $0x0
4116d8:	e8 13 cd ff ff       	call   0x40e3f0
4116dd:	c3                   	ret
4116de:	8b 51 1c             	mov    0x1c(%ecx),%edx
4116e1:	8b c2                	mov    %edx,%eax
4116e3:	c1 e8 05             	shr    $0x5,%eax
4116e6:	a8 01                	test   $0x1,%al
4116e8:	74 09                	je     0x4116f3
4116ea:	81 ca 80 00 00 00    	or     $0x80,%edx
4116f0:	89 51 1c             	mov    %edx,0x1c(%ecx)
4116f3:	6a 00                	push   $0x0
4116f5:	e8 83 ce ff ff       	call   0x40e57d
4116fa:	c3                   	ret
4116fb:	6a 01                	push   $0x1
4116fd:	c7 41 24 08 00 00 00 	movl   $0x8,0x24(%ecx)
411704:	c7 41 28 0a 00 00 00 	movl   $0xa,0x28(%ecx)
41170b:	e8 1e d3 ff ff       	call   0x40ea2e
411710:	c3                   	ret
411711:	6a 01                	push   $0x1
411713:	c7 41 24 08 00 00 00 	movl   $0x8,0x24(%ecx)
41171a:	c7 41 28 0a 00 00 00 	movl   $0xa,0x28(%ecx)
411721:	e8 95 d4 ff ff       	call   0x40ebbb
411726:	c3                   	ret
411727:	8b ff                	mov    %edi,%edi
411729:	53                   	push   %ebx
41172a:	56                   	push   %esi
41172b:	8b f1                	mov    %ecx,%esi
41172d:	57                   	push   %edi
41172e:	8b 56 10             	mov    0x10(%esi),%edx
411731:	8d 42 04             	lea    0x4(%edx),%eax
411734:	89 46 10             	mov    %eax,0x10(%esi)