422769:	74 0b                	je     0x422776
42276b:	8b 45 f0             	mov    -0x10(%ebp),%eax
42276e:	40                   	inc    %eax
42276f:	89 45 f0             	mov    %eax,-0x10(%ebp)
422772:	3b c1                	cmp    %ecx,%eax
422774:	7c bd                	jl     0x422733
422776:	33 db                	xor    %ebx,%ebx
422778:	80 7e 38 00          	cmpb   $0x0,0x38(%esi)
42277c:	74 62                	je     0x4227e0
42277e:	39 5e 34             	cmp    %ebx,0x34(%esi)
422781:	7e 5d                	jle    0x4227e0
422783:	8b 4e 30             	mov    0x30(%esi),%ecx
422786:	89 5d f0             	mov    %ebx,-0x10(%ebp)
422789:	ff 76 08             	push   0x8(%esi)
42278c:	0f b7 01             	movzwl (%ecx),%eax
42278f:	83 c1 02             	add    $0x2,%ecx
422792:	50                   	push   %eax
422793:	6a 06                	push   $0x6
422795:	8d 45 f4             	lea    -0xc(%ebp),%eax
422798:	89 5d ec             	mov    %ebx,-0x14(%ebp)
42279b:	50                   	push   %eax
42279c:	8d 45 ec             	lea    -0x14(%ebp),%eax
42279f:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4227a2:	50                   	push   %eax
4227a3:	e8 f3 8c 00 00       	call   0x42b49b
4227a8:	83 c4 14             	add    $0x14,%esp
4227ab:	85 c0                	test   %eax,%eax
4227ad:	75 2c                	jne    0x4227db
4227af:	39 45 ec             	cmp    %eax,-0x14(%ebp)
4227b2:	74 27                	je     0x4227db
4227b4:	ff 76 08             	push   0x8(%esi)
4227b7:	8d 45 f4             	lea    -0xc(%ebp),%eax
4227ba:	57                   	push   %edi
4227bb:	ff 75 ec             	push   -0x14(%ebp)
4227be:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
4227c4:	50                   	push   %eax
4227c5:	e8 68 0c 00 00       	call   0x423432
4227ca:	8b 45 f0             	mov    -0x10(%ebp),%eax
4227cd:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4227d0:	40                   	inc    %eax
4227d1:	89 45 f0             	mov    %eax,-0x10(%ebp)
4227d4:	3b 46 34             	cmp    0x34(%esi),%eax
4227d7:	75 b0                	jne    0x422789
4227d9:	eb 16                	jmp    0x4227f1
4227db:	83 0f ff             	orl    $0xffffffff,(%edi)
4227de:	eb 11                	jmp    0x4227f1
4227e0:	ff 76 08             	push   0x8(%esi)
4227e3:	8b ca                	mov    %edx,%ecx
4227e5:	57                   	push   %edi
4227e6:	ff 76 34             	push   0x34(%esi)
4227e9:	ff 76 30             	push   0x30(%esi)
4227ec:	e8 41 0c 00 00       	call   0x423432
4227f1:	8b 0f                	mov    (%edi),%ecx
4227f3:	85 c9                	test   %ecx,%ecx
4227f5:	78 50                	js     0x422847
4227f7:	8b 46 1c             	mov    0x1c(%esi),%eax
4227fa:	c1 e8 02             	shr    $0x2,%eax
4227fd:	a8 01                	test   $0x1,%al
4227ff:	74 46                	je     0x422847
422801:	8b 75 e4             	mov    -0x1c(%ebp),%esi
422804:	85 f6                	test   %esi,%esi
422806:	7e 3f                	jle    0x422847
422808:	8b 45 e8             	mov    -0x18(%ebp),%eax
42280b:	8b 10                	mov    (%eax),%edx
42280d:	8b 42 08             	mov    0x8(%edx),%eax
422810:	3b 42 04             	cmp    0x4(%edx),%eax
422813:	75 10                	jne    0x422825
422815:	80 7a 0c 00          	cmpb   $0x0,0xc(%edx)
422819:	74 03                	je     0x42281e
42281b:	41                   	inc    %ecx
42281c:	eb 03                	jmp    0x422821
42281e:	83 c9 ff             	or     $0xffffffff,%ecx
422821:	89 0f                	mov    %ecx,(%edi)
422823:	eb 16                	jmp    0x42283b
422825:	8d 41 01             	lea    0x1(%ecx),%eax
422828:	8b 4d e8             	mov    -0x18(%ebp),%ecx
42282b:	89 07                	mov    %eax,(%edi)
42282d:	ff 42 08             	incl   0x8(%edx)
422830:	8b 01                	mov    (%ecx),%eax
422832:	8b 00                	mov    (%eax),%eax
422834:	c6 00 20             	movb   $0x20,(%eax)
422837:	8b 01                	mov    (%ecx),%eax
422839:	ff 00                	incl   (%eax)
42283b:	8b 0f                	mov    (%edi),%ecx
42283d:	83 f9 ff             	cmp    $0xffffffff,%ecx
422840:	74 05                	je     0x422847
422842:	43                   	inc    %ebx
422843:	3b de                	cmp    %esi,%ebx
422845:	7c c1                	jl     0x422808
422847:	b0 01                	mov    $0x1,%al
422849:	8b 4d fc             	mov    -0x4(%ebp),%ecx
42284c:	5f                   	pop    %edi
42284d:	5e                   	pop    %esi
42284e:	33 cd                	xor    %ebp,%ecx
422850:	5b                   	pop    %ebx
422851:	e8 54 73 ff ff       	call   0x419baa
422856:	c9                   	leave
422857:	c3                   	ret
422858:	8b ff                	mov    %edi,%edi
42285a:	55                   	push   %ebp
42285b:	8b ec                	mov    %esp,%ebp
42285d:	83 ec 28             	sub    $0x28,%esp
422860:	a1 14 50 45 00       	mov    0x455014,%eax
422865:	33 c5                	xor    %ebp,%eax
422867:	89 45 fc             	mov    %eax,-0x4(%ebp)
42286a:	53                   	push   %ebx
42286b:	56                   	push   %esi
42286c:	57                   	push   %edi
42286d:	6a 41                	push   $0x41
42286f:	5f                   	pop    %edi
422870:	8b f1                	mov    %ecx,%esi
422872:	89 7d ec             	mov    %edi,-0x14(%ebp)
422875:	6a 02                	push   $0x2
422877:	59                   	pop    %ecx
422878:	33 db                	xor    %ebx,%ebx
42287a:	0f b7 46 2e          	movzwl 0x2e(%esi),%eax
42287e:	6a 58                	push   $0x58
422880:	5a                   	pop    %edx
422881:	83 f8 64             	cmp    $0x64,%eax
422884:	77 6a                	ja     0x4228f0
422886:	0f 84 8c 00 00 00    	je     0x422918
42288c:	83 f8 53             	cmp    $0x53,%eax
42288f:	77 2c                	ja     0x4228bd
422891:	0f 84 ae 00 00 00    	je     0x422945
422897:	2b c7                	sub    %edi,%eax
422899:	74 16                	je     0x4228b1
42289b:	2b c1                	sub    %ecx,%eax
42289d:	74 33                	je     0x4228d2
42289f:	2b c1                	sub    %ecx,%eax
4228a1:	74 0e                	je     0x4228b1
4228a3:	83 e8 01             	sub    $0x1,%eax
4228a6:	74 09                	je     0x4228b1
4228a8:	83 e8 01             	sub    $0x1,%eax
4228ab:	0f 85 a8 00 00 00    	jne    0x422959
4228b1:	8b ce                	mov    %esi,%ecx
4228b3:	e8 3f 06 00 00       	call   0x422ef7
4228b8:	e9 98 00 00 00       	jmp    0x422955
4228bd:	2b c2                	sub    %edx,%eax
4228bf:	74 24                	je     0x4228e5
4228c1:	2b c1                	sub    %ecx,%eax
4228c3:	74 17                	je     0x4228dc
4228c5:	83 e8 07             	sub    $0x7,%eax
4228c8:	74 e7                	je     0x4228b1
4228ca:	2b c1                	sub    %ecx,%eax
4228cc:	0f 85 87 00 00 00    	jne    0x422959
4228d2:	53                   	push   %ebx
4228d3:	8b ce                	mov    %esi,%ecx
4228d5:	e8 59 08 00 00       	call   0x423133
4228da:	eb 79                	jmp    0x422955
4228dc:	8b ce                	mov    %esi,%ecx
4228de:	e8 20 04 00 00       	call   0x422d03
4228e3:	eb 70                	jmp    0x422955
4228e5:	6a 01                	push   $0x1
4228e7:	8b ce                	mov    %esi,%ecx
4228e9:	e8 b7 e8 ff ff       	call   0x4211a5
4228ee:	eb 65                	jmp    0x422955
4228f0:	83 f8 6f             	cmp    $0x6f,%eax
4228f3:	77 3a                	ja     0x42292f
4228f5:	74 2f                	je     0x422926
4228f7:	83 e8 65             	sub    $0x65,%eax
4228fa:	74 b5                	je     0x4228b1
4228fc:	83 e8 01             	sub    $0x1,%eax
4228ff:	74 b0                	je     0x4228b1
422901:	83 e8 01             	sub    $0x1,%eax
422904:	74 ab                	je     0x4228b1
422906:	2b c1                	sub    %ecx,%eax
422908:	74 0e                	je     0x422918
42290a:	83 e8 05             	sub    $0x5,%eax
42290d:	75 4a                	jne    0x422959
42290f:	8b ce                	mov    %esi,%ecx
422911:	e8 c5 08 00 00       	call   0x4231db
422916:	eb 3d                	jmp    0x422955
422918:	83 4e 1c 10          	orl    $0x10,0x1c(%esi)
42291c:	53                   	push   %ebx
42291d:	8b ce                	mov    %esi,%ecx
42291f:	e8 62 e5 ff ff       	call   0x420e86
422924:	eb 2f                	jmp    0x422955
422926:	8b ce                	mov    %esi,%ecx
422928:	e8 50 09 00 00       	call   0x42327d
42292d:	eb 26                	jmp    0x422955
42292f:	83 e8 70             	sub    $0x70,%eax
422932:	74 1a                	je     0x42294e
422934:	83 e8 03             	sub    $0x3,%eax
422937:	74 0c                	je     0x422945
422939:	2b c1                	sub    %ecx,%eax
42293b:	74 df                	je     0x42291c
42293d:	83 e8 03             	sub    $0x3,%eax
422940:	75 17                	jne    0x422959
422942:	53                   	push   %ebx
422943:	eb a2                	jmp    0x4228e7
422945:	8b ce                	mov    %esi,%ecx
422947:	e8 ec 09 00 00       	call   0x423338
42294c:	eb 07                	jmp    0x422955
42294e:	8b ce                	mov    %esi,%ecx
422950:	e8 5b 09 00 00       	call   0x4232b0
422955:	84 c0                	test   %al,%al
422957:	75 07                	jne    0x422960
422959:	32 c0                	xor    %al,%al
42295b:	e9 dd 02 00 00       	jmp    0x422c3d
422960:	38 5e 2c             	cmp    %bl,0x2c(%esi)
422963:	0f 85 d2 02 00 00    	jne    0x422c3b
422969:	8b 46 1c             	mov    0x1c(%esi),%eax
42296c:	33 d2                	xor    %edx,%edx
42296e:	c1 e8 04             	shr    $0x4,%eax
422971:	42                   	inc    %edx
422972:	89 5d f4             	mov    %ebx,-0xc(%ebp)
422975:	8b cb                	mov    %ebx,%ecx
422977:	66 89 5d f8          	mov    %bx,-0x8(%ebp)
42297b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
42297e:	6a 20                	push   $0x20
422980:	5f                   	pop    %edi
422981:	84 c2                	test   %al,%dl
422983:	74 33                	je     0x4229b8
422985:	8b 46 1c             	mov    0x1c(%esi),%eax
422988:	c1 e8 06             	shr    $0x6,%eax
42298b:	84 c2                	test   %al,%dl
42298d:	74 04                	je     0x422993
42298f:	6a 2d                	push   $0x2d
422991:	eb 07                	jmp    0x42299a
422993:	84 56 1c             	test   %dl,0x1c(%esi)
422996:	74 0e                	je     0x4229a6
422998:	6a 2b                	push   $0x2b
42299a:	58                   	pop    %eax
42299b:	8b ca                	mov    %edx,%ecx
42299d:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
4229a1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4229a4:	eb 12                	jmp    0x4229b8
4229a6:	8b 46 1c             	mov    0x1c(%esi),%eax
4229a9:	d1 e8                	shr    $1,%eax
4229ab:	84 c2                	test   %al,%dl
4229ad:	74 09                	je     0x4229b8
4229af:	66 89 7d f4          	mov    %di,-0xc(%ebp)
4229b3:	8b ca                	mov    %edx,%ecx
4229b5:	89 55 f0             	mov    %edx,-0x10(%ebp)
4229b8:	0f b7 56 2e          	movzwl 0x2e(%esi),%edx
4229bc:	6a 78                	push   $0x78
4229be:	5f                   	pop    %edi
4229bf:	66 3b d7             	cmp    %di,%dx
4229c2:	74 08                	je     0x4229cc
4229c4:	6a 58                	push   $0x58
4229c6:	58                   	pop    %eax
4229c7:	66 3b d0             	cmp    %ax,%dx
4229ca:	75 0c                	jne    0x4229d8
4229cc:	8b 46 1c             	mov    0x1c(%esi),%eax
4229cf:	c1 e8 05             	shr    $0x5,%eax
4229d2:	b4 01                	mov    $0x1,%ah
4229d4:	a8 01                	test   $0x1,%al
4229d6:	75 02                	jne    0x4229da
4229d8:	8a e3                	mov    %bl,%ah
4229da:	83 fa 61             	cmp    $0x61,%edx
4229dd:	74 08                	je     0x4229e7
4229df:	8a c3                	mov    %bl,%al
4229e1:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
4229e5:	75 02                	jne    0x4229e9
4229e7:	b0 01                	mov    $0x1,%al
4229e9:	c7 45 e8 30 00 00 00 	movl   $0x30,-0x18(%ebp)
4229f0:	84 e4                	test   %ah,%ah
4229f2:	75 04                	jne    0x4229f8
4229f4:	84 c0                	test   %al,%al
4229f6:	74 23                	je     0x422a1b
4229f8:	8b 45 e8             	mov    -0x18(%ebp),%eax
4229fb:	6a 58                	push   $0x58
4229fd:	66 89 44 4d f4       	mov    %ax,-0xc(%ebp,%ecx,2)
422a02:	58                   	pop    %eax
422a03:	66 3b d0             	cmp    %ax,%dx
422a06:	74 06                	je     0x422a0e
422a08:	66 3b 55 ec          	cmp    -0x14(%ebp),%dx
422a0c:	75 02                	jne    0x422a10
422a0e:	8b f8                	mov    %eax,%edi
422a10:	66 89 7c 4d f6       	mov    %di,-0xa(%ebp,%ecx,2)
422a15:	83 c1 02             	add    $0x2,%ecx
422a18:	89 4d f0             	mov    %ecx,-0x10(%ebp)
422a1b:	8b 56 20             	mov    0x20(%esi),%edx
422a1e:	2b 56 34             	sub    0x34(%esi),%edx
422a21:	2b d1                	sub    %ecx,%edx
422a23:	f6 46 1c 0c          	testb  $0xc,0x1c(%esi)
422a27:	89 55 dc             	mov    %edx,-0x24(%ebp)
422a2a:	75 5e                	jne    0x422a8a
422a2c:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
422a2f:	85 d2                	test   %edx,%edx
422a31:	7e 57                	jle    0x422a8a
422a33:	8b 5e 14             	mov    0x14(%esi),%ebx
422a36:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
422a39:	8b be 48 04 00 00    	mov    0x448(%esi),%edi
422a3f:	8b 47 08             	mov    0x8(%edi),%eax
422a42:	3b 47 04             	cmp    0x4(%edi),%eax
422a45:	75 11                	jne    0x422a58
422a47:	80 7f 0c 00          	cmpb   $0x0,0xc(%edi)
422a4b:	74 03                	je     0x422a50
422a4d:	43                   	inc    %ebx
422a4e:	eb 03                	jmp    0x422a53
422a50:	83 cb ff             	or     $0xffffffff,%ebx
422a53:	89 5e 14             	mov    %ebx,0x14(%esi)
422a56:	eb 20                	jmp    0x422a78
422a58:	8d 43 01             	lea    0x1(%ebx),%eax
422a5b:	89 46 14             	mov    %eax,0x14(%esi)
422a5e:	ff 47 08             	incl   0x8(%edi)
422a61:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
422a67:	6a 20                	push   $0x20
422a69:	5b                   	pop    %ebx
422a6a:	8b 00                	mov    (%eax),%eax
422a6c:	66 89 18             	mov    %bx,(%eax)
422a6f:	8b 86 48 04 00 00    	mov    0x448(%esi),%eax
422a75:	83 00 02             	addl   $0x2,(%eax)
422a78:	8b 5e 14             	mov    0x14(%esi),%ebx
422a7b:	83 fb ff             	cmp    $0xffffffff,%ebx
422a7e:	74 05                	je     0x422a85
422a80:	41                   	inc    %ecx
422a81:	3b ca                	cmp    %edx,%ecx
422a83:	7c b4                	jl     0x422a39
422a85:	8b 4d f0             	mov    -0x10(%ebp),%ecx
422a88:	33 db                	xor    %ebx,%ebx
422a8a:	ff 76 08             	push   0x8(%esi)
422a8d:	8d 7e 14             	lea    0x14(%esi),%edi
422a90:	57                   	push   %edi
422a91:	51                   	push   %ecx
422a92:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
422a98:	8d 4d f4             	lea    -0xc(%ebp),%ecx
422a9b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
422a9e:	51                   	push   %ecx
422a9f:	8b c8                	mov    %eax,%ecx
422aa1:	e8 f3 09 00 00       	call   0x423499
422aa6:	8b 4e 1c             	mov    0x1c(%esi),%ecx
422aa9:	8d 96 48 04 00 00    	lea    0x448(%esi),%edx
422aaf:	8b c1                	mov    %ecx,%eax
422ab1:	c1 e8 03             	shr    $0x3,%eax
422ab4:	a8 01                	test   $0x1,%al
422ab6:	74 5b                	je     0x422b13
422ab8:	c1 e9 02             	shr    $0x2,%ecx
422abb:	f6 c1 01             	test   $0x1,%cl
422abe:	75 53                	jne    0x422b13
422ac0:	8b 4d dc             	mov    -0x24(%ebp),%ecx
422ac3:	89 5d ec             	mov    %ebx,-0x14(%ebp)
422ac6:	85 c9                	test   %ecx,%ecx
422ac8:	7e 49                	jle    0x422b13
422aca:	8b 02                	mov    (%edx),%eax
422acc:	89 45 f0             	mov    %eax,-0x10(%ebp)
422acf:	8b d8                	mov    %eax,%ebx
422ad1:	8b 40 08             	mov    0x8(%eax),%eax
422ad4:	3b 43 04             	cmp    0x4(%ebx),%eax
422ad7:	8b c3                	mov    %ebx,%eax
422ad9:	75 12                	jne    0x422aed
422adb:	80 78 0c 00          	cmpb   $0x0,0xc(%eax)
422adf:	74 05                	je     0x422ae6
422ae1:	8b 07                	mov    (%edi),%eax
422ae3:	40                   	inc    %eax
422ae4:	eb 03                	jmp    0x422ae9
422ae6:	83 c8 ff             	or     $0xffffffff,%eax
422ae9:	89 07                	mov    %eax,(%edi)
422aeb:	eb 14                	jmp    0x422b01