40567f:	8b ec                	mov    %esp,%ebp
405681:	56                   	push   %esi
405682:	ff 75 1c             	push   0x1c(%ebp)
405685:	8b f1                	mov    %ecx,%esi
405687:	ff 75 18             	push   0x18(%ebp)
40568a:	ff 75 14             	push   0x14(%ebp)
40568d:	ff 75 10             	push   0x10(%ebp)
405690:	ff 75 0c             	push   0xc(%ebp)
405693:	ff 75 08             	push   0x8(%ebp)
405696:	e8 a5 ff ff ff       	call   0x405640
40569b:	83 a6 50 04 00 00 00 	andl   $0x0,0x450(%esi)
4056a2:	e8 60 26 00 00       	call   0x407d07
4056a7:	89 46 0c             	mov    %eax,0xc(%esi)
4056aa:	8b c6                	mov    %esi,%eax
4056ac:	5e                   	pop    %esi
4056ad:	5d                   	pop    %ebp
4056ae:	c2 18 00             	ret    $0x18
4056b1:	8b ff                	mov    %edi,%edi
4056b3:	55                   	push   %ebp
4056b4:	8b ec                	mov    %esp,%ebp
4056b6:	57                   	push   %edi
4056b7:	8b f9                	mov    %ecx,%edi
4056b9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4056bc:	c6 47 0c 00          	movb   $0x0,0xc(%edi)
4056c0:	85 c9                	test   %ecx,%ecx
4056c2:	74 0a                	je     0x4056ce
4056c4:	8b 01                	mov    (%ecx),%eax
4056c6:	89 47 04             	mov    %eax,0x4(%edi)
4056c9:	8b 41 04             	mov    0x4(%ecx),%eax
4056cc:	eb 16                	jmp    0x4056e4
4056ce:	a1 98 41 42 00       	mov    0x424198,%eax
4056d3:	85 c0                	test   %eax,%eax
4056d5:	75 12                	jne    0x4056e9
4056d7:	a1 c0 31 42 00       	mov    0x4231c0,%eax
4056dc:	89 47 04             	mov    %eax,0x4(%edi)
4056df:	a1 c4 31 42 00       	mov    0x4231c4,%eax
4056e4:	89 47 08             	mov    %eax,0x8(%edi)
4056e7:	eb 44                	jmp    0x40572d
4056e9:	56                   	push   %esi
4056ea:	e8 33 53 00 00       	call   0x40aa22
4056ef:	8d 57 04             	lea    0x4(%edi),%edx
4056f2:	89 07                	mov    %eax,(%edi)
4056f4:	52                   	push   %edx
4056f5:	8d 77 08             	lea    0x8(%edi),%esi
4056f8:	8b 48 4c             	mov    0x4c(%eax),%ecx
4056fb:	89 0a                	mov    %ecx,(%edx)
4056fd:	8b 48 48             	mov    0x48(%eax),%ecx
405700:	50                   	push   %eax
405701:	89 0e                	mov    %ecx,(%esi)
405703:	e8 69 54 00 00       	call   0x40ab71
405708:	56                   	push   %esi
405709:	ff 37                	push   (%edi)
40570b:	e8 8e 54 00 00       	call   0x40ab9e
405710:	8b 0f                	mov    (%edi),%ecx
405712:	83 c4 10             	add    $0x10,%esp
405715:	8b 81 50 03 00 00    	mov    0x350(%ecx),%eax
40571b:	5e                   	pop    %esi
40571c:	a8 02                	test   $0x2,%al
40571e:	75 0d                	jne    0x40572d
405720:	83 c8 02             	or     $0x2,%eax
405723:	89 81 50 03 00 00    	mov    %eax,0x350(%ecx)
405729:	c6 47 0c 01          	movb   $0x1,0xc(%edi)
40572d:	8b c7                	mov    %edi,%eax
40572f:	5f                   	pop    %edi
405730:	5d                   	pop    %ebp
405731:	c2 04 00             	ret    $0x4
405734:	8b ff                	mov    %edi,%edi
405736:	56                   	push   %esi
405737:	8b f1                	mov    %ecx,%esi
405739:	ff b6 04 04 00 00    	push   0x404(%esi)
40573f:	e8 e0 40 00 00       	call   0x409824
405744:	83 a6 04 04 00 00 00 	andl   $0x0,0x404(%esi)
40574b:	59                   	pop    %ecx
40574c:	5e                   	pop    %esi
40574d:	c3                   	ret
40574e:	8b ff                	mov    %edi,%edi
405750:	55                   	push   %ebp
405751:	8b ec                	mov    %esp,%ebp
405753:	56                   	push   %esi
405754:	8b f1                	mov    %ecx,%esi
405756:	ff 36                	push   (%esi)
405758:	e8 c7 40 00 00       	call   0x409824
40575d:	8b 55 08             	mov    0x8(%ebp),%edx
405760:	83 26 00             	andl   $0x0,(%esi)
405763:	59                   	pop    %ecx
405764:	8b 02                	mov    (%edx),%eax
405766:	89 06                	mov    %eax,(%esi)
405768:	8b c6                	mov    %esi,%eax
40576a:	83 22 00             	andl   $0x0,(%edx)
40576d:	5e                   	pop    %esi
40576e:	5d                   	pop    %ebp
40576f:	c2 04 00             	ret    $0x4
405772:	8b ff                	mov    %edi,%edi
405774:	55                   	push   %ebp
405775:	8b ec                	mov    %esp,%ebp
405777:	8b 45 0c             	mov    0xc(%ebp),%eax
40577a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40577d:	53                   	push   %ebx
40577e:	8b 00                	mov    (%eax),%eax
405780:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
405786:	8b 00                	mov    (%eax),%eax
405788:	8a 18                	mov    (%eax),%bl
40578a:	eb 05                	jmp    0x405791
40578c:	3a c3                	cmp    %bl,%al
40578e:	74 07                	je     0x405797
405790:	41                   	inc    %ecx
405791:	8a 01                	mov    (%ecx),%al
405793:	84 c0                	test   %al,%al
405795:	75 f5                	jne    0x40578c
405797:	8a 01                	mov    (%ecx),%al
405799:	41                   	inc    %ecx
40579a:	84 c0                	test   %al,%al
40579c:	74 28                	je     0x4057c6
40579e:	eb 09                	jmp    0x4057a9
4057a0:	3c 65                	cmp    $0x65,%al
4057a2:	74 0b                	je     0x4057af
4057a4:	3c 45                	cmp    $0x45,%al
4057a6:	74 07                	je     0x4057af
4057a8:	41                   	inc    %ecx
4057a9:	8a 01                	mov    (%ecx),%al
4057ab:	84 c0                	test   %al,%al
4057ad:	75 f1                	jne    0x4057a0
4057af:	8b d1                	mov    %ecx,%edx
4057b1:	49                   	dec    %ecx
4057b2:	80 39 30             	cmpb   $0x30,(%ecx)
4057b5:	74 fa                	je     0x4057b1
4057b7:	38 19                	cmp    %bl,(%ecx)
4057b9:	75 01                	jne    0x4057bc
4057bb:	49                   	dec    %ecx
4057bc:	8a 02                	mov    (%edx),%al
4057be:	41                   	inc    %ecx
4057bf:	42                   	inc    %edx
4057c0:	88 01                	mov    %al,(%ecx)
4057c2:	84 c0                	test   %al,%al
4057c4:	75 f6                	jne    0x4057bc
4057c6:	5b                   	pop    %ebx
4057c7:	5d                   	pop    %ebp
4057c8:	c3                   	ret
4057c9:	8b ff                	mov    %edi,%edi
4057cb:	55                   	push   %ebp
4057cc:	8b ec                	mov    %esp,%ebp
4057ce:	8b 4d 08             	mov    0x8(%ebp),%ecx
4057d1:	8d 41 e0             	lea    -0x20(%ecx),%eax
4057d4:	66 83 f8 5a          	cmp    $0x5a,%ax
4057d8:	77 0f                	ja     0x4057e9
4057da:	0f b7 c1             	movzwl %cx,%eax
4057dd:	0f b6 80 68 bc 41 00 	movzbl 0x41bc68(%eax),%eax
4057e4:	83 e0 0f             	and    $0xf,%eax
4057e7:	eb 02                	jmp    0x4057eb
4057e9:	33 c0                	xor    %eax,%eax
4057eb:	6b c8 09             	imul   $0x9,%eax,%ecx
4057ee:	8b 45 0c             	mov    0xc(%ebp),%eax
4057f1:	0f b6 84 01 88 bc 41 	movzbl 0x41bc88(%ecx,%eax,1),%eax
4057f8:	00
4057f9:	c1 e8 04             	shr    $0x4,%eax
4057fc:	5d                   	pop    %ebp
4057fd:	c2 08 00             	ret    $0x8
405800:	8b ff                	mov    %edi,%edi
405802:	55                   	push   %ebp
405803:	8b ec                	mov    %esp,%ebp
405805:	8b 4d 08             	mov    0x8(%ebp),%ecx
405808:	8d 41 e0             	lea    -0x20(%ecx),%eax
40580b:	66 83 f8 5a          	cmp    $0x5a,%ax
40580f:	77 0f                	ja     0x405820
405811:	0f b7 c1             	movzwl %cx,%eax
405814:	0f b6 88 08 bc 41 00 	movzbl 0x41bc08(%eax),%ecx
40581b:	83 e1 0f             	and    $0xf,%ecx
40581e:	eb 02                	jmp    0x405822
405820:	33 c9                	xor    %ecx,%ecx
405822:	8b 45 0c             	mov    0xc(%ebp),%eax
405825:	0f b6 84 c8 28 bc 41 	movzbl 0x41bc28(%eax,%ecx,8),%eax
40582c:	00
40582d:	c1 e8 04             	shr    $0x4,%eax
405830:	5d                   	pop    %ebp
405831:	c2 08 00             	ret    $0x8
405834:	8b ff                	mov    %edi,%edi
405836:	55                   	push   %ebp
405837:	8b ec                	mov    %esp,%ebp
405839:	56                   	push   %esi
40583a:	8b 75 08             	mov    0x8(%ebp),%esi
40583d:	0f be 06             	movsbl (%esi),%eax
405840:	50                   	push   %eax
405841:	e8 df 4c 00 00       	call   0x40a525
405846:	83 f8 65             	cmp    $0x65,%eax
405849:	eb 0c                	jmp    0x405857
40584b:	46                   	inc    %esi
40584c:	0f b6 06             	movzbl (%esi),%eax
40584f:	50                   	push   %eax
405850:	e8 22 4b 00 00       	call   0x40a377
405855:	85 c0                	test   %eax,%eax
405857:	59                   	pop    %ecx
405858:	75 f1                	jne    0x40584b
40585a:	0f be 06             	movsbl (%esi),%eax
40585d:	50                   	push   %eax
40585e:	e8 c2 4c 00 00       	call   0x40a525
405863:	59                   	pop    %ecx
405864:	83 f8 78             	cmp    $0x78,%eax
405867:	75 03                	jne    0x40586c
405869:	83 c6 02             	add    $0x2,%esi
40586c:	8b 45 0c             	mov    0xc(%ebp),%eax
40586f:	8a 0e                	mov    (%esi),%cl
405871:	8b 00                	mov    (%eax),%eax
405873:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
405879:	8b 00                	mov    (%eax),%eax
40587b:	8a 00                	mov    (%eax),%al
40587d:	88 06                	mov    %al,(%esi)
40587f:	46                   	inc    %esi
405880:	8a 06                	mov    (%esi),%al
405882:	88 0e                	mov    %cl,(%esi)
405884:	8a c8                	mov    %al,%cl
405886:	8a 06                	mov    (%esi),%al
405888:	46                   	inc    %esi
405889:	84 c0                	test   %al,%al
40588b:	75 f3                	jne    0x405880
40588d:	5e                   	pop    %esi
40588e:	5d                   	pop    %ebp
40588f:	c3                   	ret
405890:	8b ff                	mov    %edi,%edi
405892:	55                   	push   %ebp
405893:	8b ec                	mov    %esp,%ebp
405895:	51                   	push   %ecx
405896:	53                   	push   %ebx
405897:	56                   	push   %esi
405898:	8b f1                	mov    %ecx,%esi
40589a:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40589d:	57                   	push   %edi
40589e:	6a 0a                	push   $0xa
4058a0:	51                   	push   %ecx
4058a1:	8b 7e 0c             	mov    0xc(%esi),%edi
4058a4:	8b 1f                	mov    (%edi),%ebx
4058a6:	83 27 00             	andl   $0x0,(%edi)
4058a9:	8b 46 10             	mov    0x10(%esi),%eax
4058ac:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4058b0:	83 e8 02             	sub    $0x2,%eax
4058b3:	50                   	push   %eax
4058b4:	e8 b7 4c 00 00       	call   0x40a570
4058b9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4058bc:	83 c4 0c             	add    $0xc,%esp
4058bf:	89 01                	mov    %eax,(%ecx)
4058c1:	8b 46 0c             	mov    0xc(%esi),%eax
4058c4:	83 38 22             	cmpl   $0x22,(%eax)
4058c7:	74 0f                	je     0x4058d8
4058c9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4058cc:	3b 46 10             	cmp    0x10(%esi),%eax
4058cf:	72 07                	jb     0x4058d8
4058d1:	89 46 10             	mov    %eax,0x10(%esi)
4058d4:	b0 01                	mov    $0x1,%al
4058d6:	eb 02                	jmp    0x4058da
4058d8:	32 c0                	xor    %al,%al
4058da:	83 3f 00             	cmpl   $0x0,(%edi)
4058dd:	75 06                	jne    0x4058e5
4058df:	85 db                	test   %ebx,%ebx
4058e1:	74 02                	je     0x4058e5
4058e3:	89 1f                	mov    %ebx,(%edi)
4058e5:	5f                   	pop    %edi
4058e6:	5e                   	pop    %esi
4058e7:	5b                   	pop    %ebx
4058e8:	8b e5                	mov    %ebp,%esp
4058ea:	5d                   	pop    %ebp
4058eb:	c2 04 00             	ret    $0x4
4058ee:	8b ff                	mov    %edi,%edi
4058f0:	56                   	push   %esi
4058f1:	8b f1                	mov    %ecx,%esi
4058f3:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
4058f9:	e8 9f 49 00 00       	call   0x40a29d
4058fe:	84 c0                	test   %al,%al
405900:	75 05                	jne    0x405907
405902:	83 c8 ff             	or     $0xffffffff,%eax
405905:	5e                   	pop    %esi
405906:	c3                   	ret
405907:	53                   	push   %ebx
405908:	33 db                	xor    %ebx,%ebx
40590a:	39 5e 10             	cmp    %ebx,0x10(%esi)
40590d:	0f 85 cf 00 00 00    	jne    0x4059e2
405913:	e8 ef 23 00 00       	call   0x407d07
405918:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40591e:	e8 0b 23 00 00       	call   0x407c2e
405923:	83 c8 ff             	or     $0xffffffff,%eax
405926:	e9 cd 00 00 00       	jmp    0x4059f8
40592b:	89 5e 38             	mov    %ebx,0x38(%esi)
40592e:	89 5e 1c             	mov    %ebx,0x1c(%esi)
405931:	e9 86 00 00 00       	jmp    0x4059bc
405936:	83 46 10 02          	addl   $0x2,0x10(%esi)
40593a:	39 5e 18             	cmp    %ebx,0x18(%esi)
40593d:	0f 8c 90 00 00 00    	jl     0x4059d3
405943:	ff 76 1c             	push   0x1c(%esi)
405946:	0f b7 46 32          	movzwl 0x32(%esi),%eax
40594a:	8b ce                	mov    %esi,%ecx
40594c:	50                   	push   %eax
40594d:	e8 77 fe ff ff       	call   0x4057c9
405952:	89 46 1c             	mov    %eax,0x1c(%esi)
405955:	83 f8 08             	cmp    $0x8,%eax
405958:	74 b9                	je     0x405913
40595a:	83 f8 07             	cmp    $0x7,%eax
40595d:	77 c4                	ja     0x405923
40595f:	ff 24 85 fe 59 40 00 	jmp    *0x4059fe(,%eax,4)
405966:	8b ce                	mov    %esi,%ecx
405968:	e8 0e 02 00 00       	call   0x405b7b
40596d:	eb 45                	jmp    0x4059b4
40596f:	83 4e 28 ff          	orl    $0xffffffff,0x28(%esi)
405973:	89 5e 24             	mov    %ebx,0x24(%esi)
405976:	88 5e 30             	mov    %bl,0x30(%esi)
405979:	89 5e 20             	mov    %ebx,0x20(%esi)
40597c:	89 5e 2c             	mov    %ebx,0x2c(%esi)
40597f:	88 5e 3c             	mov    %bl,0x3c(%esi)
405982:	eb 38                	jmp    0x4059bc
405984:	8b ce                	mov    %esi,%ecx
405986:	e8 b3 01 00 00       	call   0x405b3e
40598b:	eb 27                	jmp    0x4059b4
40598d:	8b ce                	mov    %esi,%ecx
40598f:	e8 23 06 00 00       	call   0x405fb7
405994:	eb 1e                	jmp    0x4059b4
405996:	89 5e 28             	mov    %ebx,0x28(%esi)
405999:	eb 21                	jmp    0x4059bc
40599b:	8b ce                	mov    %esi,%ecx
40599d:	e8 13 02 00 00       	call   0x405bb5
4059a2:	eb 10                	jmp    0x4059b4
4059a4:	8b ce                	mov    %esi,%ecx
4059a6:	e8 33 02 00 00       	call   0x405bde
4059ab:	eb 07                	jmp    0x4059b4
4059ad:	8b ce                	mov    %esi,%ecx
4059af:	e8 a6 03 00 00       	call   0x405d5a
4059b4:	84 c0                	test   %al,%al
4059b6:	0f 84 67 ff ff ff    	je     0x405923
4059bc:	8b 46 10             	mov    0x10(%esi),%eax
4059bf:	0f b7 00             	movzwl (%eax),%eax
4059c2:	66 89 46 32          	mov    %ax,0x32(%esi)
4059c6:	66 85 c0             	test   %ax,%ax
4059c9:	0f 85 67 ff ff ff    	jne    0x405936
4059cf:	83 46 10 02          	addl   $0x2,0x10(%esi)
4059d3:	8b ce                	mov    %esi,%ecx
4059d5:	e8 7b 0b 00 00       	call   0x406555
4059da:	84 c0                	test   %al,%al
4059dc:	0f 84 41 ff ff ff    	je     0x405923
4059e2:	ff 86 50 04 00 00    	incl   0x450(%esi)
4059e8:	83 be 50 04 00 00 02 	cmpl   $0x2,0x450(%esi)
4059ef:	0f 85 36 ff ff ff    	jne    0x40592b
4059f5:	8b 46 18             	mov    0x18(%esi),%eax
4059f8:	5b                   	pop    %ebx
4059f9:	5e                   	pop    %esi
4059fa:	c3                   	ret
4059fb:	8d 49 00             	lea    0x0(%ecx),%ecx
4059fe:	66 59                	pop    %cx
405a00:	40                   	inc    %eax
405a01:	00 6f 59             	add    %ch,0x59(%edi)
405a04:	40                   	inc    %eax
405a05:	00 84 59 40 00 8d 59 	add    %al,0x598d0040(%ecx,%ebx,2)
405a0c:	40                   	inc    %eax
405a0d:	00 96 59 40 00 9b    	add    %dl,-0x64ffbfa7(%esi)
405a13:	59                   	pop    %ecx