527772:	50                   	push   %eax
527773:	e8 18 f1 ff ff       	call   0x526890
527778:	8b c8                	mov    %eax,%ecx
52777a:	83 c4 0c             	add    $0xc,%esp
52777d:	85 c9                	test   %ecx,%ecx
52777f:	74 33                	je     0x5277b4
527781:	8b 46 04             	mov    0x4(%esi),%eax
527784:	51                   	push   %ecx
527785:	53                   	push   %ebx
527786:	ff 75 dc             	push   -0x24(%ebp)
527789:	89 41 1c             	mov    %eax,0x1c(%ecx)
52778c:	e8 ef fd ff ff       	call   0x527580
527791:	8b d8                	mov    %eax,%ebx
527793:	83 c4 0c             	add    $0xc,%esp
527796:	85 db                	test   %ebx,%ebx
527798:	74 1a                	je     0x5277b4
52779a:	8b 0b                	mov    (%ebx),%ecx
52779c:	8b 36                	mov    (%esi),%esi
52779e:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
5277a1:	8b 0c fe             	mov    (%esi,%edi,8),%ecx
5277a4:	8b 75 c8             	mov    -0x38(%ebp),%esi
5277a7:	89 4c 93 f4          	mov    %ecx,-0xc(%ebx,%edx,4)
5277ab:	8b 06                	mov    (%esi),%eax
5277ad:	c7 04 f8 00 00 00 00 	movl   $0x0,(%eax,%edi,8)
5277b4:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5277b7:	47                   	inc    %edi
5277b8:	8b 45 dc             	mov    -0x24(%ebp),%eax
5277bb:	3b 7e 04             	cmp    0x4(%esi),%edi
5277be:	7c b0                	jl     0x527770
5277c0:	8b 45 cc             	mov    -0x34(%ebp),%eax
5277c3:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5277c7:	0f 85 12 ff ff ff    	jne    0x5276df
5277cd:	80 3a 88             	cmpb   $0x88,(%edx)
5277d0:	0f 85 09 ff ff ff    	jne    0x5276df
5277d6:	85 db                	test   %ebx,%ebx
5277d8:	0f 84 01 ff ff ff    	je     0x5276df
5277de:	8b 45 d0             	mov    -0x30(%ebp),%eax
5277e1:	8d 04 80             	lea    (%eax,%eax,4),%eax
5277e4:	8b 4c 83 04          	mov    0x4(%ebx,%eax,4),%ecx
5277e8:	89 51 10             	mov    %edx,0x10(%ecx)
5277eb:	8b 46 04             	mov    0x4(%esi),%eax
5277ee:	89 41 1c             	mov    %eax,0x1c(%ecx)
5277f1:	e9 50 ff ff ff       	jmp    0x527746
5277f6:	cc                   	int3
5277f7:	cc                   	int3
5277f8:	cc                   	int3
5277f9:	cc                   	int3
5277fa:	cc                   	int3
5277fb:	cc                   	int3
5277fc:	cc                   	int3
5277fd:	cc                   	int3
5277fe:	cc                   	int3
5277ff:	cc                   	int3
527800:	55                   	push   %ebp
527801:	8b ec                	mov    %esp,%ebp
527803:	8b 45 0c             	mov    0xc(%ebp),%eax
527806:	85 c0                	test   %eax,%eax
527808:	74 1c                	je     0x527826
52780a:	8b 55 08             	mov    0x8(%ebp),%edx
52780d:	8b 00                	mov    (%eax),%eax
52780f:	8b 0a                	mov    (%edx),%ecx
527811:	3b 41 74             	cmp    0x74(%ecx),%eax
527814:	7e 10                	jle    0x527826
527816:	c7 45 0c fc 90 6b 00 	movl   $0x6b90fc,0xc(%ebp)
52781d:	89 55 08             	mov    %edx,0x8(%ebp)
527820:	5d                   	pop    %ebp
527821:	e9 3a ba ff ff       	jmp    0x523260
527826:	5d                   	pop    %ebp
527827:	c3                   	ret
527828:	cc                   	int3
527829:	cc                   	int3
52782a:	cc                   	int3
52782b:	cc                   	int3
52782c:	cc                   	int3
52782d:	cc                   	int3
52782e:	cc                   	int3
52782f:	cc                   	int3
527830:	55                   	push   %ebp
527831:	8b ec                	mov    %esp,%ebp
527833:	51                   	push   %ecx
527834:	8b 45 08             	mov    0x8(%ebp),%eax
527837:	85 c0                	test   %eax,%eax
527839:	75 09                	jne    0x527844
52783b:	39 45 0c             	cmp    %eax,0xc(%ebp)
52783e:	75 11                	jne    0x527851
527840:	8b e5                	mov    %ebp,%esp
527842:	5d                   	pop    %ebp
527843:	c3                   	ret
527844:	8b 4d 0c             	mov    0xc(%ebp),%ecx
527847:	85 c9                	test   %ecx,%ecx
527849:	74 06                	je     0x527851
52784b:	8b 10                	mov    (%eax),%edx
52784d:	3b 11                	cmp    (%ecx),%edx
52784f:	74 09                	je     0x52785a
527851:	b8 01 00 00 00       	mov    $0x1,%eax
527856:	8b e5                	mov    %ebp,%esp
527858:	5d                   	pop    %ebp
527859:	c3                   	ret
52785a:	53                   	push   %ebx
52785b:	56                   	push   %esi
52785c:	57                   	push   %edi
52785d:	33 ff                	xor    %edi,%edi
52785f:	85 d2                	test   %edx,%edx
527861:	7e 3b                	jle    0x52789e
527863:	8b d0                	mov    %eax,%edx
527865:	8d 58 0c             	lea    0xc(%eax),%ebx
527868:	2b d1                	sub    %ecx,%edx
52786a:	8d 71 04             	lea    0x4(%ecx),%esi
52786d:	89 55 fc             	mov    %edx,-0x4(%ebp)
527870:	8a 03                	mov    (%ebx),%al
527872:	3a 46 08             	cmp    0x8(%esi),%al
527875:	75 30                	jne    0x5278a7
527877:	ff 75 10             	push   0x10(%ebp)
52787a:	ff 36                	push   (%esi)
52787c:	ff 34 32             	push   (%edx,%esi,1)
52787f:	6a 00                	push   $0x0
527881:	e8 4a ec ff ff       	call   0x5264d0
527886:	83 c4 10             	add    $0x10,%esp
527889:	85 c0                	test   %eax,%eax
52788b:	75 13                	jne    0x5278a0
52788d:	8b 45 08             	mov    0x8(%ebp),%eax
527890:	47                   	inc    %edi
527891:	8b 55 fc             	mov    -0x4(%ebp),%edx
527894:	83 c3 14             	add    $0x14,%ebx
527897:	83 c6 14             	add    $0x14,%esi
52789a:	3b 38                	cmp    (%eax),%edi
52789c:	7c d2                	jl     0x527870
52789e:	33 c0                	xor    %eax,%eax
5278a0:	5f                   	pop    %edi
5278a1:	5e                   	pop    %esi
5278a2:	5b                   	pop    %ebx
5278a3:	8b e5                	mov    %ebp,%esp
5278a5:	5d                   	pop    %ebp
5278a6:	c3                   	ret
5278a7:	5f                   	pop    %edi
5278a8:	5e                   	pop    %esi
5278a9:	b8 01 00 00 00       	mov    $0x1,%eax
5278ae:	5b                   	pop    %ebx
5278af:	8b e5                	mov    %ebp,%esp
5278b1:	5d                   	pop    %ebp
5278b2:	c3                   	ret
5278b3:	cc                   	int3
5278b4:	cc                   	int3
5278b5:	cc                   	int3
5278b6:	cc                   	int3
5278b7:	cc                   	int3
5278b8:	cc                   	int3
5278b9:	cc                   	int3
5278ba:	cc                   	int3
5278bb:	cc                   	int3
5278bc:	cc                   	int3
5278bd:	cc                   	int3
5278be:	cc                   	int3
5278bf:	cc                   	int3
5278c0:	55                   	push   %ebp
5278c1:	8b ec                	mov    %esp,%ebp
5278c3:	83 ec 18             	sub    $0x18,%esp
5278c6:	56                   	push   %esi
5278c7:	8b 75 0c             	mov    0xc(%ebp),%esi
5278ca:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
5278d1:	85 f6                	test   %esi,%esi
5278d3:	75 07                	jne    0x5278dc
5278d5:	33 c0                	xor    %eax,%eax
5278d7:	5e                   	pop    %esi
5278d8:	8b e5                	mov    %ebp,%esp
5278da:	5d                   	pop    %ebp
5278db:	c3                   	ret
5278dc:	57                   	push   %edi
5278dd:	8b 7d 08             	mov    0x8(%ebp),%edi
5278e0:	85 ff                	test   %edi,%edi
5278e2:	74 28                	je     0x52790c
5278e4:	3b b7 4c 01 00 00    	cmp    0x14c(%edi),%esi
5278ea:	73 20                	jae    0x52790c
5278ec:	3b b7 44 01 00 00    	cmp    0x144(%edi),%esi
5278f2:	72 07                	jb     0x5278fb
5278f4:	b8 80 00 00 00       	mov    $0x80,%eax
5278f9:	eb 1b                	jmp    0x527916
5278fb:	3b b7 48 01 00 00    	cmp    0x148(%edi),%esi
527901:	72 09                	jb     0x52790c
527903:	0f b7 87 1e 01 00 00 	movzwl 0x11e(%edi),%eax
52790a:	eb 0a                	jmp    0x527916
52790c:	56                   	push   %esi
52790d:	ff 15 3c 18 72 00    	call   *0x72183c
527913:	83 c4 04             	add    $0x4,%esp
527916:	99                   	cltd
527917:	52                   	push   %edx
527918:	50                   	push   %eax
527919:	57                   	push   %edi
52791a:	e8 c1 9a ff ff       	call   0x5213e0
52791f:	8b c8                	mov    %eax,%ecx
527921:	83 c4 0c             	add    $0xc,%esp
527924:	89 4d e8             	mov    %ecx,-0x18(%ebp)
527927:	85 c9                	test   %ecx,%ecx
527929:	75 06                	jne    0x527931
52792b:	5f                   	pop    %edi
52792c:	5e                   	pop    %esi
52792d:	8b e5                	mov    %ebp,%esp
52792f:	5d                   	pop    %ebp
527930:	c3                   	ret
527931:	8b 06                	mov    (%esi),%eax
527933:	8d 51 04             	lea    0x4(%ecx),%edx
527936:	89 01                	mov    %eax,(%ecx)
527938:	83 3e 00             	cmpl   $0x0,(%esi)
52793b:	89 55 fc             	mov    %edx,-0x4(%ebp)
52793e:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
527945:	0f 8e 08 01 00 00    	jle    0x527a53
52794b:	53                   	push   %ebx
52794c:	8b c2                	mov    %edx,%eax
52794e:	8d 5e 0c             	lea    0xc(%esi),%ebx
527951:	2b c1                	sub    %ecx,%eax
527953:	03 d8                	add    %eax,%ebx
527955:	2b ce                	sub    %esi,%ecx
527957:	89 5d f0             	mov    %ebx,-0x10(%ebp)
52795a:	89 4d ec             	mov    %ecx,-0x14(%ebp)
52795d:	0f 1f 00             	nopl   (%eax)
527960:	8b 73 f4             	mov    -0xc(%ebx),%esi
527963:	85 f6                	test   %esi,%esi
527965:	74 14                	je     0x52797b
527967:	6a 00                	push   $0x0
527969:	ff 75 10             	push   0x10(%ebp)
52796c:	56                   	push   %esi
52796d:	57                   	push   %edi
52796e:	e8 ed 8e fd ff       	call   0x500860
527973:	8b 55 fc             	mov    -0x4(%ebp),%edx
527976:	83 c4 10             	add    $0x10,%esp
527979:	eb 02                	jmp    0x52797d
52797b:	33 c0                	xor    %eax,%eax
52797d:	89 02                	mov    %eax,(%edx)
52797f:	85 f6                	test   %esi,%esi
527981:	74 1e                	je     0x5279a1
527983:	80 3e af             	cmpb   $0xaf,(%esi)
527986:	75 19                	jne    0x5279a1
527988:	85 c0                	test   %eax,%eax
52798a:	74 15                	je     0x5279a1
52798c:	66 83 78 20 00       	cmpw   $0x0,0x20(%eax)
527991:	75 08                	jne    0x52799b
527993:	8b 48 10             	mov    0x10(%eax),%ecx
527996:	89 4d f8             	mov    %ecx,-0x8(%ebp)
527999:	eb 03                	jmp    0x52799e
52799b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
52799e:	89 48 0c             	mov    %ecx,0xc(%eax)
5279a1:	8b 5b f8             	mov    -0x8(%ebx),%ebx
5279a4:	85 db                	test   %ebx,%ebx
5279a6:	75 04                	jne    0x5279ac
5279a8:	33 f6                	xor    %esi,%esi
5279aa:	eb 45                	jmp    0x5279f1
5279ac:	8b c3                	mov    %ebx,%eax
5279ae:	8d 50 01             	lea    0x1(%eax),%edx
5279b1:	8a 08                	mov    (%eax),%cl
5279b3:	40                   	inc    %eax
5279b4:	84 c9                	test   %cl,%cl
5279b6:	75 f9                	jne    0x5279b1
5279b8:	2b c2                	sub    %edx,%eax
5279ba:	6a 00                	push   $0x0
5279bc:	8d 78 01             	lea    0x1(%eax),%edi
5279bf:	8b 45 08             	mov    0x8(%ebp),%eax
5279c2:	57                   	push   %edi
5279c3:	85 c0                	test   %eax,%eax
5279c5:	74 0b                	je     0x5279d2
5279c7:	50                   	push   %eax
5279c8:	e8 13 9a ff ff       	call   0x5213e0
5279cd:	83 c4 0c             	add    $0xc,%esp
5279d0:	eb 08                	jmp    0x5279da
5279d2:	e8 89 95 00 00       	call   0x530f60
5279d7:	83 c4 08             	add    $0x8,%esp
5279da:	8b f0                	mov    %eax,%esi
5279dc:	85 f6                	test   %esi,%esi
5279de:	74 0b                	je     0x5279eb
5279e0:	57                   	push   %edi
5279e1:	53                   	push   %ebx
5279e2:	56                   	push   %esi
5279e3:	e8 18 b5 0b 00       	call   0x5e2f00
5279e8:	83 c4 0c             	add    $0xc,%esp
5279eb:	8b 7d 08             	mov    0x8(%ebp),%edi
5279ee:	8b 55 fc             	mov    -0x4(%ebp),%edx
5279f1:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5279f4:	89 72 04             	mov    %esi,0x4(%edx)
5279f7:	8b 75 ec             	mov    -0x14(%ebp),%esi
5279fa:	8a 43 fc             	mov    -0x4(%ebx),%al
5279fd:	88 42 08             	mov    %al,0x8(%edx)
527a00:	8b 03                	mov    (%ebx),%eax
527a02:	8b 14 1e             	mov    (%esi,%ebx,1),%edx
527a05:	83 e0 03             	and    $0x3,%eax
527a08:	83 e2 f8             	and    $0xfffffff8,%edx
527a0b:	0b d0                	or     %eax,%edx
527a0d:	89 14 1e             	mov    %edx,(%esi,%ebx,1)
527a10:	8b 0b                	mov    (%ebx),%ecx
527a12:	33 ca                	xor    %edx,%ecx
527a14:	83 e1 20             	and    $0x20,%ecx
527a17:	33 ca                	xor    %edx,%ecx
527a19:	8b 55 fc             	mov    -0x4(%ebp),%edx
527a1c:	89 0c 1e             	mov    %ecx,(%esi,%ebx,1)
527a1f:	8b 03                	mov    (%ebx),%eax
527a21:	33 c1                	xor    %ecx,%eax
527a23:	83 e0 10             	and    $0x10,%eax
527a26:	33 c1                	xor    %ecx,%eax
527a28:	8b 4d f4             	mov    -0xc(%ebp),%ecx
527a2b:	89 04 1e             	mov    %eax,(%esi,%ebx,1)
527a2e:	41                   	inc    %ecx
527a2f:	8b 43 04             	mov    0x4(%ebx),%eax
527a32:	83 c3 14             	add    $0x14,%ebx
527a35:	89 42 10             	mov    %eax,0x10(%edx)
527a38:	83 c2 14             	add    $0x14,%edx
527a3b:	8b 45 0c             	mov    0xc(%ebp),%eax
527a3e:	89 4d f4             	mov    %ecx,-0xc(%ebp)
527a41:	89 55 fc             	mov    %edx,-0x4(%ebp)
527a44:	89 5d f0             	mov    %ebx,-0x10(%ebp)
527a47:	3b 08                	cmp    (%eax),%ecx
527a49:	0f 8c 11 ff ff ff    	jl     0x527960
527a4f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
527a52:	5b                   	pop    %ebx
527a53:	5f                   	pop    %edi
527a54:	8b c1                	mov    %ecx,%eax
527a56:	5e                   	pop    %esi
527a57:	8b e5                	mov    %ebp,%esp
527a59:	5d                   	pop    %ebp
527a5a:	c3                   	ret
527a5b:	cc                   	int3
527a5c:	cc                   	int3
527a5d:	cc                   	int3
527a5e:	cc                   	int3
527a5f:	cc                   	int3
527a60:	55                   	push   %ebp
527a61:	8b ec                	mov    %esp,%ebp
527a63:	51                   	push   %ecx
527a64:	8b 4d 0c             	mov    0xc(%ebp),%ecx
527a67:	85 c9                	test   %ecx,%ecx
527a69:	0f 84 86 00 00 00    	je     0x527af5
527a6f:	8b 01                	mov    (%ecx),%eax
527a71:	33 d2                	xor    %edx,%edx
527a73:	53                   	push   %ebx
527a74:	8b 5d 08             	mov    0x8(%ebp),%ebx
527a77:	56                   	push   %esi
527a78:	8d 04 80             	lea    (%eax,%eax,4),%eax
527a7b:	8d 40 fc             	lea    -0x4(%eax),%eax
527a7e:	8d 04 81             	lea    (%ecx,%eax,4),%eax
527a81:	8b 4d 10             	mov    0x10(%ebp),%ecx
527a84:	57                   	push   %edi
527a85:	89 45 0c             	mov    %eax,0xc(%ebp)
527a88:	8b 79 04             	mov    0x4(%ecx),%edi
527a8b:	8b 09                	mov    (%ecx),%ecx
527a8d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
527a90:	85 c9                	test   %ecx,%ecx
527a92:	75 04                	jne    0x527a98
527a94:	33 f6                	xor    %esi,%esi
527a96:	eb 2d                	jmp    0x527ac5
527a98:	8b c7                	mov    %edi,%eax
527a9a:	83 c0 01             	add    $0x1,%eax
527a9d:	13 d2                	adc    %edx,%edx
527a9f:	52                   	push   %edx