41a5a6:	e8 29 2d 00 00       	call   0x41d2d4
41a5ab:	8b b5 6c ff ff ff    	mov    -0x94(%ebp),%esi
41a5b1:	e9 8a 00 00 00       	jmp    0x41a640
41a5b6:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a5bc:	8b cf                	mov    %edi,%ecx
41a5be:	e8 31 66 00 00       	call   0x420bf4
41a5c3:	84 c0                	test   %al,%al
41a5c5:	75 79                	jne    0x41a640
41a5c7:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a5cb:	75 07                	jne    0x41a5d4
41a5cd:	8b cf                	mov    %edi,%ecx
41a5cf:	e8 c1 1e 00 00       	call   0x41c495
41a5d4:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
41a5d8:	8d 45 b4             	lea    -0x4c(%ebp),%eax
41a5db:	66 39 08             	cmp    %cx,(%eax)
41a5de:	74 0a                	je     0x41a5ea
41a5e0:	83 c0 02             	add    $0x2,%eax
41a5e3:	8d 55 ec             	lea    -0x14(%ebp),%edx
41a5e6:	3b c2                	cmp    %edx,%eax
41a5e8:	75 f1                	jne    0x41a5db
41a5ea:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
41a5ed:	2b c1                	sub    %ecx,%eax
41a5ef:	d1 f8                	sar    $1,%eax
41a5f1:	83 f8 16             	cmp    $0x16,%eax
41a5f4:	73 3e                	jae    0x41a634
41a5f6:	39 b5 5c ff ff ff    	cmp    %esi,-0xa4(%ebp)
41a5fc:	7f 08                	jg     0x41a606
41a5fe:	ff 85 70 ff ff ff    	incl   -0x90(%ebp)
41a604:	eb 12                	jmp    0x41a618
41a606:	85 c0                	test   %eax,%eax
41a608:	75 04                	jne    0x41a60e
41a60a:	85 f6                	test   %esi,%esi
41a60c:	74 0a                	je     0x41a618
41a60e:	8a 80 c4 64 49 00    	mov    0x4964c4(%eax),%al
41a614:	88 03                	mov    %al,(%ebx)
41a616:	43                   	inc    %ebx
41a617:	46                   	inc    %esi
41a618:	8b cf                	mov    %edi,%ecx
41a61a:	c6 45 83 01          	movb   $0x1,-0x7d(%ebp)
41a61e:	e8 ac 07 00 00       	call   0x41adcf
41a623:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a629:	8b cf                	mov    %edi,%ecx
41a62b:	e8 c4 65 00 00       	call   0x420bf4
41a630:	84 c0                	test   %al,%al
41a632:	74 93                	je     0x41a5c7
41a634:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
41a63a:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
41a640:	80 7d 83 00          	cmpb   $0x0,-0x7d(%ebp)
41a644:	74 0e                	je     0x41a654
41a646:	85 f6                	test   %esi,%esi
41a648:	75 0a                	jne    0x41a654
41a64a:	c6 03 30             	movb   $0x30,(%ebx)
41a64d:	43                   	inc    %ebx
41a64e:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
41a654:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a65a:	8b cf                	mov    %edi,%ecx
41a65c:	e8 93 65 00 00       	call   0x420bf4
41a661:	84 c0                	test   %al,%al
41a663:	75 39                	jne    0x41a69e
41a665:	38 47 04             	cmp    %al,0x4(%edi)
41a668:	75 07                	jne    0x41a671
41a66a:	8b cf                	mov    %edi,%ecx
41a66c:	e8 24 1e 00 00       	call   0x41c495
41a671:	8b 8d 60 ff ff ff    	mov    -0xa0(%ebp),%ecx
41a677:	0f b7 77 06          	movzwl 0x6(%edi),%esi
41a67b:	8b 01                	mov    (%ecx),%eax
41a67d:	ff 50 0c             	call   *0xc(%eax)
41a680:	66 3b f0             	cmp    %ax,%si
41a683:	75 19                	jne    0x41a69e
41a685:	e8 53 d7 04 00       	call   0x467ddd
41a68a:	8b cf                	mov    %edi,%ecx
41a68c:	8b 00                	mov    (%eax),%eax
41a68e:	8a 00                	mov    (%eax),%al
41a690:	88 03                	mov    %al,(%ebx)
41a692:	43                   	inc    %ebx
41a693:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
41a699:	e8 31 07 00 00       	call   0x41adcf
41a69e:	8b b5 6c ff ff ff    	mov    -0x94(%ebp),%esi
41a6a4:	85 f6                	test   %esi,%esi
41a6a6:	0f 85 c1 00 00 00    	jne    0x41a76d
41a6ac:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a6b2:	8b cf                	mov    %edi,%ecx
41a6b4:	e8 3b 65 00 00       	call   0x420bf4
41a6b9:	84 c0                	test   %al,%al
41a6bb:	75 4d                	jne    0x41a70a
41a6bd:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
41a6c3:	8b 9d 70 ff ff ff    	mov    -0x90(%ebp),%ebx
41a6c9:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a6cd:	75 07                	jne    0x41a6d6
41a6cf:	8b cf                	mov    %edi,%ecx
41a6d1:	e8 bf 1d 00 00       	call   0x41c495
41a6d6:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a6da:	66 3b 45 b4          	cmp    -0x4c(%ebp),%ax
41a6de:	75 18                	jne    0x41a6f8
41a6e0:	8b cf                	mov    %edi,%ecx
41a6e2:	c6 45 83 01          	movb   $0x1,-0x7d(%ebp)
41a6e6:	4b                   	dec    %ebx
41a6e7:	e8 e3 06 00 00       	call   0x41adcf
41a6ec:	56                   	push   %esi
41a6ed:	8b cf                	mov    %edi,%ecx
41a6ef:	e8 00 65 00 00       	call   0x420bf4
41a6f4:	84 c0                	test   %al,%al
41a6f6:	74 d1                	je     0x41a6c9
41a6f8:	8b b5 6c ff ff ff    	mov    -0x94(%ebp),%esi
41a6fe:	89 9d 70 ff ff ff    	mov    %ebx,-0x90(%ebp)
41a704:	8b 9d 74 ff ff ff    	mov    -0x8c(%ebp),%ebx
41a70a:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
41a710:	85 c0                	test   %eax,%eax
41a712:	79 59                	jns    0x41a76d
41a714:	c6 03 30             	movb   $0x30,(%ebx)
41a717:	43                   	inc    %ebx
41a718:	40                   	inc    %eax
41a719:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
41a71f:	eb 4c                	jmp    0x41a76d
41a721:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a725:	75 07                	jne    0x41a72e
41a727:	8b cf                	mov    %edi,%ecx
41a729:	e8 67 1d 00 00       	call   0x41c495
41a72e:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
41a732:	8d 45 b4             	lea    -0x4c(%ebp),%eax
41a735:	66 39 08             	cmp    %cx,(%eax)
41a738:	74 0a                	je     0x41a744
41a73a:	83 c0 02             	add    $0x2,%eax
41a73d:	8d 55 ec             	lea    -0x14(%ebp),%edx
41a740:	3b c2                	cmp    %edx,%eax
41a742:	75 f1                	jne    0x41a735
41a744:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
41a747:	2b c1                	sub    %ecx,%eax
41a749:	d1 f8                	sar    $1,%eax
41a74b:	83 f8 16             	cmp    $0x16,%eax
41a74e:	73 2e                	jae    0x41a77e
41a750:	3b b5 5c ff ff ff    	cmp    -0xa4(%ebp),%esi
41a756:	7d 0a                	jge    0x41a762
41a758:	8a 80 c4 64 49 00    	mov    0x4964c4(%eax),%al
41a75e:	88 03                	mov    %al,(%ebx)
41a760:	43                   	inc    %ebx
41a761:	46                   	inc    %esi
41a762:	8b cf                	mov    %edi,%ecx
41a764:	c6 45 83 01          	movb   $0x1,-0x7d(%ebp)
41a768:	e8 62 06 00 00       	call   0x41adcf
41a76d:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a773:	8b cf                	mov    %edi,%ecx
41a775:	e8 7a 64 00 00       	call   0x420bf4
41a77a:	84 c0                	test   %al,%al
41a77c:	74 a3                	je     0x41a721
41a77e:	8a 45 83             	mov    -0x7d(%ebp),%al
41a781:	84 c0                	test   %al,%al
41a783:	0f 84 72 01 00 00    	je     0x41a8fb
41a789:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a78f:	8b cf                	mov    %edi,%ecx
41a791:	e8 5e 64 00 00       	call   0x420bf4
41a796:	84 c0                	test   %al,%al
41a798:	0f 85 5a 01 00 00    	jne    0x41a8f8
41a79e:	38 47 04             	cmp    %al,0x4(%edi)
41a7a1:	75 07                	jne    0x41a7aa
41a7a3:	8b cf                	mov    %edi,%ecx
41a7a5:	e8 eb 1c 00 00       	call   0x41c495
41a7aa:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a7ae:	66 3b 45 ea          	cmp    -0x16(%ebp),%ax
41a7b2:	74 1b                	je     0x41a7cf
41a7b4:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a7b8:	75 0b                	jne    0x41a7c5
41a7ba:	8b cf                	mov    %edi,%ecx
41a7bc:	e8 d4 1c 00 00       	call   0x41c495
41a7c1:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a7c5:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
41a7c9:	0f 85 29 01 00 00    	jne    0x41a8f8
41a7cf:	c6 03 70             	movb   $0x70,(%ebx)
41a7d2:	8b cf                	mov    %edi,%ecx
41a7d4:	43                   	inc    %ebx
41a7d5:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
41a7db:	e8 ef 05 00 00       	call   0x41adcf
41a7e0:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a7e6:	33 f6                	xor    %esi,%esi
41a7e8:	c6 45 83 00          	movb   $0x0,-0x7d(%ebp)
41a7ec:	8b cf                	mov    %edi,%ecx
41a7ee:	89 b5 60 ff ff ff    	mov    %esi,-0xa0(%ebp)
41a7f4:	e8 fb 63 00 00       	call   0x420bf4
41a7f9:	84 c0                	test   %al,%al
41a7fb:	75 43                	jne    0x41a840
41a7fd:	38 47 04             	cmp    %al,0x4(%edi)
41a800:	75 07                	jne    0x41a809
41a802:	8b cf                	mov    %edi,%ecx
41a804:	e8 8c 1c 00 00       	call   0x41c495
41a809:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a80d:	66 3b 45 e2          	cmp    -0x1e(%ebp),%ax
41a811:	75 05                	jne    0x41a818
41a813:	c6 03 2b             	movb   $0x2b,(%ebx)
41a816:	eb 1a                	jmp    0x41a832
41a818:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a81c:	75 0b                	jne    0x41a829
41a81e:	8b cf                	mov    %edi,%ecx
41a820:	e8 70 1c 00 00       	call   0x41c495
41a825:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a829:	66 3b 45 e0          	cmp    -0x20(%ebp),%ax
41a82d:	75 11                	jne    0x41a840
41a82f:	c6 03 2d             	movb   $0x2d,(%ebx)
41a832:	43                   	inc    %ebx
41a833:	8b cf                	mov    %edi,%ecx
41a835:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
41a83b:	e8 8f 05 00 00       	call   0x41adcf
41a840:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a846:	8b cf                	mov    %edi,%ecx
41a848:	e8 a7 63 00 00       	call   0x420bf4
41a84d:	84 c0                	test   %al,%al
41a84f:	75 4c                	jne    0x41a89d
41a851:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
41a857:	8a 5d 83             	mov    -0x7d(%ebp),%bl
41a85a:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a85e:	75 07                	jne    0x41a867
41a860:	8b cf                	mov    %edi,%ecx
41a862:	e8 2e 1c 00 00       	call   0x41c495
41a867:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a86b:	66 3b 45 b4          	cmp    -0x4c(%ebp),%ax
41a86f:	75 15                	jne    0x41a886
41a871:	8b cf                	mov    %edi,%ecx
41a873:	b3 01                	mov    $0x1,%bl
41a875:	e8 55 05 00 00       	call   0x41adcf
41a87a:	56                   	push   %esi
41a87b:	8b cf                	mov    %edi,%ecx
41a87d:	e8 72 63 00 00       	call   0x420bf4
41a882:	84 c0                	test   %al,%al
41a884:	74 d4                	je     0x41a85a
41a886:	8b b5 60 ff ff ff    	mov    -0xa0(%ebp),%esi
41a88c:	84 db                	test   %bl,%bl
41a88e:	88 5d 83             	mov    %bl,-0x7d(%ebp)
41a891:	8b 9d 74 ff ff ff    	mov    -0x8c(%ebp),%ebx
41a897:	74 04                	je     0x41a89d
41a899:	c6 03 30             	movb   $0x30,(%ebx)
41a89c:	43                   	inc    %ebx
41a89d:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a8a3:	8b cf                	mov    %edi,%ecx
41a8a5:	e8 4a 63 00 00       	call   0x420bf4
41a8aa:	84 c0                	test   %al,%al
41a8ac:	75 4a                	jne    0x41a8f8
41a8ae:	38 47 04             	cmp    %al,0x4(%edi)
41a8b1:	75 07                	jne    0x41a8ba
41a8b3:	8b cf                	mov    %edi,%ecx
41a8b5:	e8 db 1b 00 00       	call   0x41c495
41a8ba:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
41a8be:	8d 45 b4             	lea    -0x4c(%ebp),%eax
41a8c1:	66 39 08             	cmp    %cx,(%eax)
41a8c4:	74 0a                	je     0x41a8d0
41a8c6:	83 c0 02             	add    $0x2,%eax
41a8c9:	8d 55 ec             	lea    -0x14(%ebp),%edx
41a8cc:	3b c2                	cmp    %edx,%eax
41a8ce:	75 f1                	jne    0x41a8c1
41a8d0:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
41a8d3:	2b c1                	sub    %ecx,%eax
41a8d5:	d1 f8                	sar    $1,%eax
41a8d7:	83 f8 16             	cmp    $0x16,%eax
41a8da:	73 1c                	jae    0x41a8f8
41a8dc:	83 fe 08             	cmp    $0x8,%esi
41a8df:	7d 0a                	jge    0x41a8eb
41a8e1:	8a 80 c4 64 49 00    	mov    0x4964c4(%eax),%al
41a8e7:	88 03                	mov    %al,(%ebx)
41a8e9:	43                   	inc    %ebx
41a8ea:	46                   	inc    %esi
41a8eb:	8b cf                	mov    %edi,%ecx
41a8ed:	c6 45 83 01          	movb   $0x1,-0x7d(%ebp)
41a8f1:	e8 d9 04 00 00       	call   0x41adcf
41a8f6:	eb a5                	jmp    0x41a89d
41a8f8:	8a 45 83             	mov    -0x7d(%ebp),%al
41a8fb:	80 bd 7b ff ff ff 00 	cmpb   $0x0,-0x85(%ebp)
41a902:	75 04                	jne    0x41a908
41a904:	84 c0                	test   %al,%al
41a906:	75 06                	jne    0x41a90e
41a908:	8b 9d 54 ff ff ff    	mov    -0xac(%ebp),%ebx
41a90e:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
41a914:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
41a91a:	c6 03 00             	movb   $0x0,(%ebx)
41a91d:	89 01                	mov    %eax,(%ecx)
41a91f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41a923:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
41a926:	e8 a9 29 00 00       	call   0x41d2d4
41a92b:	33 c0                	xor    %eax,%eax
41a92d:	e8 f6 50 02 00       	call   0x43fa28
41a932:	c3                   	ret
41a933:	68 88 00 00 00       	push   $0x88
41a938:	b8 a7 f7 48 00       	mov    $0x48f7a7,%eax
41a93d:	e8 3c 51 02 00       	call   0x43fa7e
41a942:	8b 45 0c             	mov    0xc(%ebp),%eax
41a945:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
41a948:	8b 75 10             	mov    0x10(%ebp),%esi
41a94b:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
41a951:	8b 45 14             	mov    0x14(%ebp),%eax
41a954:	53                   	push   %ebx
41a955:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
41a95b:	e8 4e e5 fe ff       	call   0x408eae
41a960:	8b f8                	mov    %eax,%edi
41a962:	8d 45 88             	lea    -0x78(%ebp),%eax
41a965:	59                   	pop    %ecx
41a966:	50                   	push   %eax
41a967:	8b cf                	mov    %edi,%ecx
41a969:	e8 de 73 00 00       	call   0x421d4c
41a96e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41a972:	83 7d 98 00          	cmpl   $0x0,-0x68(%ebp)
41a976:	75 09                	jne    0x41a981
41a978:	83 a5 70 ff ff ff 00 	andl   $0x0,-0x90(%ebp)
41a97f:	eb 10                	jmp    0x41a991
41a981:	8b 07                	mov    (%edi),%eax
41a983:	8b cf                	mov    %edi,%ecx
41a985:	ff 50 10             	call   *0x10(%eax)
41a988:	0f b7 c0             	movzwl %ax,%eax
41a98b:	89 85 70 ff ff ff    	mov    %eax,-0x90(%ebp)
41a991:	53                   	push   %ebx
41a992:	e8 cb e3 fe ff       	call   0x408d62
41a997:	59                   	pop    %ecx
41a998:	8b 08                	mov    (%eax),%ecx
41a99a:	8b 51 2c             	mov    0x2c(%ecx),%edx
41a99d:	8d 4d b8             	lea    -0x48(%ebp),%ecx
41a9a0:	51                   	push   %ecx
41a9a1:	68 c3 64 49 00       	push   $0x4964c3
41a9a6:	68 a8 64 49 00       	push   $0x4964a8
41a9ab:	8b c8                	mov    %eax,%ecx
41a9ad:	ff d2                	call   *%edx
41a9af:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a9b5:	8b 9d 6c ff ff ff    	mov    -0x94(%ebp),%ebx
41a9bb:	8b ce                	mov    %esi,%ecx
41a9bd:	89 5d 80             	mov    %ebx,-0x80(%ebp)
41a9c0:	e8 2f 62 00 00       	call   0x420bf4
41a9c5:	84 c0                	test   %al,%al
41a9c7:	75 42                	jne    0x41aa0b
41a9c9:	38 46 04             	cmp    %al,0x4(%esi)
41a9cc:	75 07                	jne    0x41a9d5
41a9ce:	8b ce                	mov    %esi,%ecx
41a9d0:	e8 c0 1a 00 00       	call   0x41c495
41a9d5:	0f b7 46 06          	movzwl 0x6(%esi),%eax
41a9d9:	66 3b 45 e6          	cmp    -0x1a(%ebp),%ax
41a9dd:	75 05                	jne    0x41a9e4
41a9df:	c6 03 2b             	movb   $0x2b,(%ebx)
41a9e2:	eb 1a                	jmp    0x41a9fe
41a9e4:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
41a9e8:	75 0b                	jne    0x41a9f5
41a9ea:	8b ce                	mov    %esi,%ecx
41a9ec:	e8 a4 1a 00 00       	call   0x41c495
41a9f1:	0f b7 46 06          	movzwl 0x6(%esi),%eax
41a9f5:	66 3b 45 e4          	cmp    -0x1c(%ebp),%ax
41a9f9:	75 10                	jne    0x41aa0b
41a9fb:	c6 03 2d             	movb   $0x2d,(%ebx)
41a9fe:	8d 43 01             	lea    0x1(%ebx),%eax
41aa01:	8b ce                	mov    %esi,%ecx
41aa03:	89 45 80             	mov    %eax,-0x80(%ebp)
41aa06:	e8 c4 03 00 00       	call   0x41adcf
41aa0b:	8b 45 18             	mov    0x18(%ebp),%eax
41aa0e:	25 00 0e 00 00       	and    $0xe00,%eax
41aa13:	6a 0a                	push   $0xa
41aa15:	8b d8                	mov    %eax,%ebx
41aa17:	f7 db                	neg    %ebx
41aa19:	5f                   	pop    %edi