41458c:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
414590:	23 45 10             	and    0x10(%ebp),%eax
414593:	eb 02                	jmp    0x414597
414595:	33 c0                	xor    %eax,%eax
414597:	85 c0                	test   %eax,%eax
414599:	74 03                	je     0x41459e
41459b:	33 c0                	xor    %eax,%eax
41459d:	40                   	inc    %eax
41459e:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4145a2:	74 07                	je     0x4145ab
4145a4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4145a7:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4145ab:	c9                   	leave
4145ac:	c3                   	ret
4145ad:	6a 04                	push   $0x4
4145af:	6a 00                	push   $0x0
4145b1:	ff 74 24 0c          	push   0xc(%esp)
4145b5:	6a 00                	push   $0x0
4145b7:	e8 a0 ff ff ff       	call   0x41455c
4145bc:	83 c4 10             	add    $0x10,%esp
4145bf:	c3                   	ret
4145c0:	55                   	push   %ebp
4145c1:	8b ec                	mov    %esp,%ebp
4145c3:	83 ec 1c             	sub    $0x1c,%esp
4145c6:	8b 55 10             	mov    0x10(%ebp),%edx
4145c9:	56                   	push   %esi
4145ca:	8b 75 08             	mov    0x8(%ebp),%esi
4145cd:	6a fe                	push   $0xfffffffe
4145cf:	58                   	pop    %eax
4145d0:	3b f0                	cmp    %eax,%esi
4145d2:	89 45 ec             	mov    %eax,-0x14(%ebp)
4145d5:	89 55 e4             	mov    %edx,-0x1c(%ebp)
4145d8:	75 1b                	jne    0x4145f5
4145da:	e8 2e 4e ff ff       	call   0x40940d
4145df:	83 20 00             	andl   $0x0,(%eax)
4145e2:	e8 13 4e ff ff       	call   0x4093fa
4145e7:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4145ed:	83 c8 ff             	or     $0xffffffff,%eax
4145f0:	e9 6a 05 00 00       	jmp    0x414b5f
4145f5:	57                   	push   %edi
4145f6:	33 ff                	xor    %edi,%edi
4145f8:	3b f7                	cmp    %edi,%esi
4145fa:	7c 08                	jl     0x414604
4145fc:	3b 35 b4 e4 41 00    	cmp    0x41e4b4,%esi
414602:	72 27                	jb     0x41462b
414604:	e8 04 4e ff ff       	call   0x40940d
414609:	89 38                	mov    %edi,(%eax)
41460b:	e8 ea 4d ff ff       	call   0x4093fa
414610:	57                   	push   %edi
414611:	57                   	push   %edi
414612:	57                   	push   %edi
414613:	57                   	push   %edi
414614:	57                   	push   %edi
414615:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
41461b:	e8 30 30 ff ff       	call   0x407650
414620:	83 c4 14             	add    $0x14,%esp
414623:	83 c8 ff             	or     $0xffffffff,%eax
414626:	e9 33 05 00 00       	jmp    0x414b5e
41462b:	8b c6                	mov    %esi,%eax
41462d:	83 e6 1f             	and    $0x1f,%esi
414630:	6b f6 28             	imul   $0x28,%esi,%esi
414633:	c1 f8 05             	sar    $0x5,%eax
414636:	53                   	push   %ebx
414637:	8d 1c 85 c0 e4 41 00 	lea    0x41e4c0(,%eax,4),%ebx
41463e:	8b 03                	mov    (%ebx),%eax
414640:	03 c6                	add    %esi,%eax
414642:	8a 48 04             	mov    0x4(%eax),%cl
414645:	f6 c1 01             	test   $0x1,%cl
414648:	75 17                	jne    0x414661
41464a:	e8 be 4d ff ff       	call   0x40940d
41464f:	89 38                	mov    %edi,(%eax)
414651:	e8 a4 4d ff ff       	call   0x4093fa
414656:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
41465c:	e9 47 01 00 00       	jmp    0x4147a8
414661:	3b d7                	cmp    %edi,%edx
414663:	89 7d f0             	mov    %edi,-0x10(%ebp)
414666:	0f 84 ef 04 00 00    	je     0x414b5b
41466c:	f6 c1 02             	test   $0x2,%cl
41466f:	0f 85 e6 04 00 00    	jne    0x414b5b
414675:	8b 4d 0c             	mov    0xc(%ebp),%ecx
414678:	3b cf                	cmp    %edi,%ecx
41467a:	0f 84 16 01 00 00    	je     0x414796
414680:	8a 40 24             	mov    0x24(%eax),%al
414683:	02 c0                	add    %al,%al
414685:	d0 f8                	sar    $1,%al
414687:	88 45 fe             	mov    %al,-0x2(%ebp)
41468a:	0f be c0             	movsbl %al,%eax
41468d:	48                   	dec    %eax
41468e:	0f 84 fa 00 00 00    	je     0x41478e
414694:	48                   	dec    %eax
414695:	75 12                	jne    0x4146a9
414697:	8b c2                	mov    %edx,%eax
414699:	f7 d0                	not    %eax
41469b:	a8 01                	test   $0x1,%al
41469d:	0f 84 f3 00 00 00    	je     0x414796
4146a3:	83 e2 fe             	and    $0xfffffffe,%edx
4146a6:	89 55 10             	mov    %edx,0x10(%ebp)
4146a9:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4146ac:	8b 0b                	mov    (%ebx),%ecx
4146ae:	8b 45 f4             	mov    -0xc(%ebp),%eax
4146b1:	8d 3c 0e             	lea    (%esi,%ecx,1),%edi
4146b4:	f6 47 04 48          	testb  $0x48,0x4(%edi)
4146b8:	74 76                	je     0x414730
4146ba:	8a 4f 05             	mov    0x5(%edi),%cl
4146bd:	80 f9 0a             	cmp    $0xa,%cl
4146c0:	74 6e                	je     0x414730
4146c2:	33 d2                	xor    %edx,%edx
4146c4:	39 55 10             	cmp    %edx,0x10(%ebp)
4146c7:	74 67                	je     0x414730
4146c9:	88 08                	mov    %cl,(%eax)
4146cb:	8b 0b                	mov    (%ebx),%ecx
4146cd:	40                   	inc    %eax
4146ce:	ff 4d 10             	decl   0x10(%ebp)
4146d1:	38 55 fe             	cmp    %dl,-0x2(%ebp)
4146d4:	c7 45 f0 01 00 00 00 	movl   $0x1,-0x10(%ebp)
4146db:	c6 44 0e 05 0a       	movb   $0xa,0x5(%esi,%ecx,1)
4146e0:	74 4e                	je     0x414730
4146e2:	8b 0b                	mov    (%ebx),%ecx
4146e4:	8a 4c 0e 25          	mov    0x25(%esi,%ecx,1),%cl
4146e8:	80 f9 0a             	cmp    $0xa,%cl
4146eb:	74 43                	je     0x414730
4146ed:	39 55 10             	cmp    %edx,0x10(%ebp)
4146f0:	74 3e                	je     0x414730
4146f2:	88 08                	mov    %cl,(%eax)
4146f4:	8b 0b                	mov    (%ebx),%ecx
4146f6:	40                   	inc    %eax
4146f7:	ff 4d 10             	decl   0x10(%ebp)
4146fa:	80 7d fe 01          	cmpb   $0x1,-0x2(%ebp)
4146fe:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
414705:	c6 44 0e 25 0a       	movb   $0xa,0x25(%esi,%ecx,1)
41470a:	75 24                	jne    0x414730
41470c:	8b 0b                	mov    (%ebx),%ecx
41470e:	8a 4c 0e 26          	mov    0x26(%esi,%ecx,1),%cl
414712:	80 f9 0a             	cmp    $0xa,%cl
414715:	74 19                	je     0x414730
414717:	39 55 10             	cmp    %edx,0x10(%ebp)
41471a:	74 14                	je     0x414730
41471c:	88 08                	mov    %cl,(%eax)
41471e:	8b 0b                	mov    (%ebx),%ecx
414720:	40                   	inc    %eax
414721:	ff 4d 10             	decl   0x10(%ebp)
414724:	c7 45 f0 03 00 00 00 	movl   $0x3,-0x10(%ebp)
41472b:	c6 44 0e 26 0a       	movb   $0xa,0x26(%esi,%ecx,1)
414730:	6a 00                	push   $0x0
414732:	8d 4d e8             	lea    -0x18(%ebp),%ecx
414735:	51                   	push   %ecx
414736:	ff 75 10             	push   0x10(%ebp)
414739:	50                   	push   %eax
41473a:	8b 03                	mov    (%ebx),%eax
41473c:	ff 34 06             	push   (%esi,%eax,1)
41473f:	ff 15 2c 70 41 00    	call   *0x41702c
414745:	85 c0                	test   %eax,%eax
414747:	0f 84 d8 03 00 00    	je     0x414b25
41474d:	8b 7d e8             	mov    -0x18(%ebp),%edi
414750:	85 ff                	test   %edi,%edi
414752:	0f 8c cd 03 00 00    	jl     0x414b25
414758:	3b 7d 10             	cmp    0x10(%ebp),%edi
41475b:	0f 87 c4 03 00 00    	ja     0x414b25
414761:	8b 03                	mov    (%ebx),%eax
414763:	01 7d f0             	add    %edi,-0x10(%ebp)
414766:	8d 44 06 04          	lea    0x4(%esi,%eax,1),%eax
41476a:	f6 00 80             	testb  $0x80,(%eax)
41476d:	0f 84 52 02 00 00    	je     0x4149c5
414773:	80 7d fe 02          	cmpb   $0x2,-0x2(%ebp)
414777:	0f 84 72 02 00 00    	je     0x4149ef
41477d:	85 ff                	test   %edi,%edi
41477f:	74 79                	je     0x4147fa
414781:	8b 4d f4             	mov    -0xc(%ebp),%ecx
414784:	80 39 0a             	cmpb   $0xa,(%ecx)
414787:	75 71                	jne    0x4147fa
414789:	80 08 04             	orb    $0x4,(%eax)
41478c:	eb 6f                	jmp    0x4147fd
41478e:	8b c2                	mov    %edx,%eax
414790:	f7 d0                	not    %eax
414792:	a8 01                	test   $0x1,%al
414794:	75 21                	jne    0x4147b7
414796:	e8 72 4c ff ff       	call   0x40940d
41479b:	89 38                	mov    %edi,(%eax)
41479d:	e8 58 4c ff ff       	call   0x4093fa
4147a2:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4147a8:	57                   	push   %edi
4147a9:	57                   	push   %edi
4147aa:	57                   	push   %edi
4147ab:	57                   	push   %edi
4147ac:	57                   	push   %edi
4147ad:	e8 9e 2e ff ff       	call   0x407650
4147b2:	83 c4 14             	add    $0x14,%esp
4147b5:	eb 3b                	jmp    0x4147f2
4147b7:	8b c2                	mov    %edx,%eax
4147b9:	6a 04                	push   $0x4
4147bb:	59                   	pop    %ecx
4147bc:	d1 e8                	shr    $1,%eax
4147be:	3b c1                	cmp    %ecx,%eax
4147c0:	89 4d 10             	mov    %ecx,0x10(%ebp)
4147c3:	72 03                	jb     0x4147c8
4147c5:	89 45 10             	mov    %eax,0x10(%ebp)
4147c8:	ff 75 10             	push   0x10(%ebp)
4147cb:	e8 1c 4b ff ff       	call   0x4092ec
4147d0:	3b c7                	cmp    %edi,%eax
4147d2:	59                   	pop    %ecx
4147d3:	89 45 f4             	mov    %eax,-0xc(%ebp)
4147d6:	0f 85 d0 fe ff ff    	jne    0x4146ac
4147dc:	e8 19 4c ff ff       	call   0x4093fa
4147e1:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
4147e7:	e8 21 4c ff ff       	call   0x40940d
4147ec:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
4147f2:	83 c8 ff             	or     $0xffffffff,%eax
4147f5:	e9 63 03 00 00       	jmp    0x414b5d
4147fa:	80 20 fb             	andb   $0xfb,(%eax)
4147fd:	8b 7d f4             	mov    -0xc(%ebp),%edi
414800:	8b 45 f0             	mov    -0x10(%ebp),%eax
414803:	03 c7                	add    %edi,%eax
414805:	3b f8                	cmp    %eax,%edi
414807:	89 7d 10             	mov    %edi,0x10(%ebp)
41480a:	89 45 f0             	mov    %eax,-0x10(%ebp)
41480d:	0f 83 d0 00 00 00    	jae    0x4148e3
414813:	8b 4d 10             	mov    0x10(%ebp),%ecx
414816:	8a 01                	mov    (%ecx),%al
414818:	3c 1a                	cmp    $0x1a,%al
41481a:	0f 84 ae 00 00 00    	je     0x4148ce
414820:	3c 0d                	cmp    $0xd,%al
414822:	74 0c                	je     0x414830
414824:	88 07                	mov    %al,(%edi)
414826:	47                   	inc    %edi
414827:	41                   	inc    %ecx
414828:	89 4d 10             	mov    %ecx,0x10(%ebp)
41482b:	e9 90 00 00 00       	jmp    0x4148c0
414830:	8b 45 f0             	mov    -0x10(%ebp),%eax
414833:	48                   	dec    %eax
414834:	3b c8                	cmp    %eax,%ecx
414836:	73 17                	jae    0x41484f
414838:	8d 41 01             	lea    0x1(%ecx),%eax
41483b:	80 38 0a             	cmpb   $0xa,(%eax)
41483e:	75 0a                	jne    0x41484a
414840:	41                   	inc    %ecx
414841:	41                   	inc    %ecx
414842:	89 4d 10             	mov    %ecx,0x10(%ebp)
414845:	c6 07 0a             	movb   $0xa,(%edi)
414848:	eb 75                	jmp    0x4148bf
41484a:	89 45 10             	mov    %eax,0x10(%ebp)
41484d:	eb 6d                	jmp    0x4148bc
41484f:	ff 45 10             	incl   0x10(%ebp)
414852:	6a 00                	push   $0x0
414854:	8d 45 e8             	lea    -0x18(%ebp),%eax
414857:	50                   	push   %eax
414858:	6a 01                	push   $0x1
41485a:	8d 45 ff             	lea    -0x1(%ebp),%eax
41485d:	50                   	push   %eax
41485e:	8b 03                	mov    (%ebx),%eax
414860:	ff 34 06             	push   (%esi,%eax,1)
414863:	ff 15 2c 70 41 00    	call   *0x41702c
414869:	85 c0                	test   %eax,%eax
41486b:	75 0a                	jne    0x414877
41486d:	ff 15 b0 70 41 00    	call   *0x4170b0
414873:	85 c0                	test   %eax,%eax
414875:	75 45                	jne    0x4148bc
414877:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
41487b:	74 3f                	je     0x4148bc
41487d:	8b 03                	mov    (%ebx),%eax
41487f:	f6 44 06 04 48       	testb  $0x48,0x4(%esi,%eax,1)
414884:	74 14                	je     0x41489a
414886:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
41488a:	74 b9                	je     0x414845
41488c:	c6 07 0d             	movb   $0xd,(%edi)
41488f:	8b 03                	mov    (%ebx),%eax
414891:	8a 4d ff             	mov    -0x1(%ebp),%cl
414894:	88 4c 06 05          	mov    %cl,0x5(%esi,%eax,1)
414898:	eb 25                	jmp    0x4148bf
41489a:	3b 7d f4             	cmp    -0xc(%ebp),%edi
41489d:	75 06                	jne    0x4148a5
41489f:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
4148a3:	74 a0                	je     0x414845
4148a5:	6a 01                	push   $0x1
4148a7:	6a ff                	push   $0xffffffff
4148a9:	6a ff                	push   $0xffffffff
4148ab:	ff 75 08             	push   0x8(%ebp)
4148ae:	e8 3f f4 ff ff       	call   0x413cf2
4148b3:	83 c4 10             	add    $0x10,%esp
4148b6:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
4148ba:	74 04                	je     0x4148c0
4148bc:	c6 07 0d             	movb   $0xd,(%edi)
4148bf:	47                   	inc    %edi
4148c0:	8b 45 f0             	mov    -0x10(%ebp),%eax
4148c3:	39 45 10             	cmp    %eax,0x10(%ebp)
4148c6:	0f 82 47 ff ff ff    	jb     0x414813
4148cc:	eb 15                	jmp    0x4148e3
4148ce:	8b 03                	mov    (%ebx),%eax
4148d0:	8d 44 06 04          	lea    0x4(%esi,%eax,1),%eax
4148d4:	f6 00 40             	testb  $0x40,(%eax)
4148d7:	75 05                	jne    0x4148de
4148d9:	80 08 02             	orb    $0x2,(%eax)
4148dc:	eb 05                	jmp    0x4148e3
4148de:	8a 01                	mov    (%ecx),%al
4148e0:	88 07                	mov    %al,(%edi)
4148e2:	47                   	inc    %edi
4148e3:	8b c7                	mov    %edi,%eax
4148e5:	2b 45 f4             	sub    -0xc(%ebp),%eax
4148e8:	80 7d fe 01          	cmpb   $0x1,-0x2(%ebp)
4148ec:	89 45 f0             	mov    %eax,-0x10(%ebp)
4148ef:	0f 85 d0 00 00 00    	jne    0x4149c5
4148f5:	85 c0                	test   %eax,%eax
4148f7:	0f 84 c8 00 00 00    	je     0x4149c5
4148fd:	4f                   	dec    %edi
4148fe:	8a 0f                	mov    (%edi),%cl
414900:	84 c9                	test   %cl,%cl
414902:	78 06                	js     0x41490a
414904:	47                   	inc    %edi
414905:	e9 86 00 00 00       	jmp    0x414990
41490a:	33 c0                	xor    %eax,%eax
41490c:	40                   	inc    %eax
41490d:	0f b6 c9             	movzbl %cl,%ecx
414910:	eb 0f                	jmp    0x414921
414912:	83 f8 04             	cmp    $0x4,%eax
414915:	7f 13                	jg     0x41492a
414917:	3b 7d f4             	cmp    -0xc(%ebp),%edi
41491a:	72 0e                	jb     0x41492a
41491c:	4f                   	dec    %edi
41491d:	0f b6 0f             	movzbl (%edi),%ecx
414920:	40                   	inc    %eax
414921:	80 b9 68 d3 41 00 00 	cmpb   $0x0,0x41d368(%ecx)
414928:	74 e8                	je     0x414912
41492a:	8a 17                	mov    (%edi),%dl
41492c:	0f b6 ca             	movzbl %dl,%ecx
41492f:	0f be 89 68 d3 41 00 	movsbl 0x41d368(%ecx),%ecx
414936:	85 c9                	test   %ecx,%ecx
414938:	75 0d                	jne    0x414947
41493a:	e8 bb 4a ff ff       	call   0x4093fa
41493f:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
414945:	eb 7a                	jmp    0x4149c1
414947:	41                   	inc    %ecx
414948:	3b c8                	cmp    %eax,%ecx
41494a:	75 04                	jne    0x414950
41494c:	03 f8                	add    %eax,%edi
41494e:	eb 40                	jmp    0x414990
414950:	8b 0b                	mov    (%ebx),%ecx
414952:	03 ce                	add    %esi,%ecx
414954:	f6 41 04 48          	testb  $0x48,0x4(%ecx)
414958:	74 24                	je     0x41497e
41495a:	47                   	inc    %edi
41495b:	83 f8 02             	cmp    $0x2,%eax
41495e:	88 51 05             	mov    %dl,0x5(%ecx)
414961:	7c 09                	jl     0x41496c
414963:	8a 17                	mov    (%edi),%dl
414965:	8b 0b                	mov    (%ebx),%ecx
414967:	88 54 0e 25          	mov    %dl,0x25(%esi,%ecx,1)
41496b:	47                   	inc    %edi
41496c:	83 f8 03             	cmp    $0x3,%eax
41496f:	75 09                	jne    0x41497a
414971:	8a 17                	mov    (%edi),%dl
414973:	8b 0b                	mov    (%ebx),%ecx