5207da:	53                   	push   %ebx
5207db:	57                   	push   %edi
5207dc:	e8 df 81 00 00       	call   0x5289c0
5207e1:	83 c4 0c             	add    $0xc,%esp
5207e4:	85 c0                	test   %eax,%eax
5207e6:	74 14                	je     0x5207fc
5207e8:	53                   	push   %ebx
5207e9:	68 7c a4 6b 00       	push   $0x6ba47c
5207ee:	56                   	push   %esi
5207ef:	e8 6c 2a 00 00       	call   0x523260
5207f4:	83 c4 0c             	add    $0xc,%esp
5207f7:	e9 19 08 00 00       	jmp    0x521015
5207fc:	8b 45 d8             	mov    -0x28(%ebp),%eax
5207ff:	ff 30                	push   (%eax)
520801:	53                   	push   %ebx
520802:	57                   	push   %edi
520803:	e8 18 81 00 00       	call   0x528920
520808:	83 c4 0c             	add    $0xc,%esp
52080b:	85 c0                	test   %eax,%eax
52080d:	74 65                	je     0x520874
52080f:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
520813:	75 14                	jne    0x520829
520815:	53                   	push   %ebx
520816:	68 a0 a4 6b 00       	push   $0x6ba4a0
52081b:	56                   	push   %esi
52081c:	e8 3f 2a 00 00       	call   0x523260
520821:	83 c4 0c             	add    $0xc,%esp
520824:	e9 ec 07 00 00       	jmp    0x521015
520829:	ff 75 c8             	push   -0x38(%ebp)
52082c:	56                   	push   %esi
52082d:	e8 ae ea ff ff       	call   0x51f2e0
520832:	e9 db 07 00 00       	jmp    0x521012
520837:	8b 40 08             	mov    0x8(%eax),%eax
52083a:	b9 01 00 00 00       	mov    $0x1,%ecx
52083f:	85 c0                	test   %eax,%eax
520841:	74 08                	je     0x52084b
520843:	8b 40 14             	mov    0x14(%eax),%eax
520846:	41                   	inc    %ecx
520847:	85 c0                	test   %eax,%eax
520849:	75 f8                	jne    0x520843
52084b:	51                   	push   %ecx
52084c:	57                   	push   %edi
52084d:	68 b8 a4 6b 00       	push   $0x6ba4b8
520852:	53                   	push   %ebx
520853:	e8 e8 06 01 00       	call   0x530f40
520858:	83 c4 10             	add    $0x10,%esp
52085b:	89 45 b4             	mov    %eax,-0x4c(%ebp)
52085e:	85 c0                	test   %eax,%eax
520860:	0f 84 af 07 00 00    	je     0x521015
520866:	80 be c8 00 00 00 00 	cmpb   $0x0,0xc8(%esi)
52086d:	74 07                	je     0x520876
52086f:	fe 40 07             	incb   0x7(%eax)
520872:	eb 02                	jmp    0x520876
520874:	8b df                	mov    %edi,%ebx
520876:	80 be c8 00 00 00 02 	cmpb   $0x2,0xc8(%esi)
52087d:	73 58                	jae    0x5208d7
52087f:	8b 45 d8             	mov    -0x28(%ebp),%eax
520882:	b9 60 9d 6b 00       	mov    $0x6b9d60,%ecx
520887:	83 7d c8 01          	cmpl   $0x1,-0x38(%ebp)
52088b:	8b 38                	mov    (%eax),%edi
52088d:	b8 24 8a 6b 00       	mov    $0x6b8a24,%eax
520892:	57                   	push   %edi
520893:	6a 00                	push   $0x0
520895:	0f 44 c1             	cmove  %ecx,%eax
520898:	50                   	push   %eax
520899:	6a 12                	push   $0x12
52089b:	56                   	push   %esi
52089c:	e8 ff 8e ff ff       	call   0x5197a0
5208a1:	83 c4 14             	add    $0x14,%esp
5208a4:	85 c0                	test   %eax,%eax
5208a6:	0f 85 69 07 00 00    	jne    0x521015
5208ac:	83 7d c8 01          	cmpl   $0x1,-0x38(%ebp)
5208b0:	57                   	push   %edi
5208b1:	8b 7d e0             	mov    -0x20(%ebp),%edi
5208b4:	0f 94 c0             	sete   %al
5208b7:	ff 37                	push   (%edi)
5208b9:	8d 04 45 01 00 00 00 	lea    0x1(,%eax,2),%eax
5208c0:	ff 75 b4             	push   -0x4c(%ebp)
5208c3:	50                   	push   %eax
5208c4:	56                   	push   %esi
5208c5:	e8 d6 8e ff ff       	call   0x5197a0
5208ca:	83 c4 14             	add    $0x14,%esp
5208cd:	85 c0                	test   %eax,%eax
5208cf:	0f 85 40 07 00 00    	jne    0x521015
5208d5:	eb 03                	jmp    0x5208da
5208d7:	8b 7d e0             	mov    -0x20(%ebp),%edi
5208da:	8b 45 cc             	mov    -0x34(%ebp),%eax
5208dd:	85 c0                	test   %eax,%eax
5208df:	75 58                	jne    0x520939
5208e1:	0f bf 47 2a          	movswl 0x2a(%edi),%eax
5208e5:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5208e8:	8b 47 04             	mov    0x4(%edi),%eax
5208eb:	ff 74 88 ec          	push   -0x14(%eax,%ecx,4)
5208ef:	66 83 4c 88 fc 08    	orw    $0x8,-0x4(%eax,%ecx,4)
5208f5:	8d 45 a0             	lea    -0x60(%ebp),%eax
5208f8:	50                   	push   %eax
5208f9:	e8 92 d8 01 00       	call   0x53e190
5208fe:	6a 00                	push   $0x0
520900:	8d 45 a0             	lea    -0x60(%ebp),%eax
520903:	50                   	push   %eax
520904:	6a 3b                	push   $0x3b
520906:	53                   	push   %ebx
520907:	e8 64 2d 00 00       	call   0x523670
52090c:	50                   	push   %eax
52090d:	6a 00                	push   $0x0
52090f:	56                   	push   %esi
520910:	e8 6b 6c 00 00       	call   0x527580
520915:	83 c4 24             	add    $0x24,%esp
520918:	89 45 cc             	mov    %eax,-0x34(%ebp)
52091b:	85 c0                	test   %eax,%eax
52091d:	0f 84 f2 06 00 00    	je     0x521015
520923:	8b 08                	mov    (%eax),%ecx
520925:	33 ff                	xor    %edi,%edi
520927:	8b 55 28             	mov    0x28(%ebp),%edx
52092a:	83 fa ff             	cmp    $0xffffffff,%edx
52092d:	0f 44 d7             	cmove  %edi,%edx
520930:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
520933:	88 54 88 f8          	mov    %dl,-0x8(%eax,%ecx,4)
520937:	eb 1c                	jmp    0x520955
520939:	68 e4 a3 6b 00       	push   $0x6ba3e4
52093e:	50                   	push   %eax
52093f:	56                   	push   %esi
520940:	e8 bb 6e 00 00       	call   0x527800
520945:	83 c4 0c             	add    $0xc,%esp
520948:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
52094c:	0f 85 c3 06 00 00    	jne    0x521015
520952:	8b 45 cc             	mov    -0x34(%ebp),%eax
520955:	8b 18                	mov    (%eax),%ebx
520957:	85 db                	test   %ebx,%ebx
520959:	7e 28                	jle    0x520983
52095b:	8d 78 04             	lea    0x4(%eax),%edi
52095e:	33 f6                	xor    %esi,%esi
520960:	8b 07                	mov    (%edi),%eax
520962:	80 38 6f             	cmpb   $0x6f,(%eax)
520965:	75 0e                	jne    0x520975
520967:	ff 70 08             	push   0x8(%eax)
52096a:	e8 21 d3 01 00       	call   0x53dc90
52096f:	46                   	inc    %esi
520970:	83 c4 04             	add    $0x4,%esp
520973:	03 f0                	add    %eax,%esi
520975:	83 c7 14             	add    $0x14,%edi
520978:	83 eb 01             	sub    $0x1,%ebx
52097b:	75 e3                	jne    0x520960
52097d:	89 75 d0             	mov    %esi,-0x30(%ebp)
520980:	8b 75 c0             	mov    -0x40(%ebp),%esi
520983:	ff 75 b4             	push   -0x4c(%ebp)
520986:	e8 05 d3 01 00       	call   0x53dc90
52098b:	8b f8                	mov    %eax,%edi
52098d:	83 c4 04             	add    $0x4,%esp
520990:	8b 45 b8             	mov    -0x48(%ebp),%eax
520993:	85 c0                	test   %eax,%eax
520995:	74 06                	je     0x52099d
520997:	0f b7 48 32          	movzwl 0x32(%eax),%ecx
52099b:	eb 05                	jmp    0x5209a2
52099d:	b9 01 00 00 00       	mov    $0x1,%ecx
5209a2:	8d 45 c4             	lea    -0x3c(%ebp),%eax
5209a5:	50                   	push   %eax
5209a6:	8b 45 d0             	mov    -0x30(%ebp),%eax
5209a9:	40                   	inc    %eax
5209aa:	03 c7                	add    %edi,%eax
5209ac:	50                   	push   %eax
5209ad:	8b 45 cc             	mov    -0x34(%ebp),%eax
5209b0:	66 8b 00             	mov    (%eax),%ax
5209b3:	66 03 c1             	add    %cx,%ax
5209b6:	0f b7 c0             	movzwl %ax,%eax
5209b9:	50                   	push   %eax
5209ba:	8b 45 dc             	mov    -0x24(%ebp),%eax
5209bd:	50                   	push   %eax
5209be:	e8 2d 78 ff ff       	call   0x5181f0
5209c3:	8b d8                	mov    %eax,%ebx
5209c5:	83 c4 10             	add    $0x10,%esp
5209c8:	8b 45 dc             	mov    -0x24(%ebp),%eax
5209cb:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5209cf:	0f 85 30 06 00 00    	jne    0x521005
5209d5:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
5209d8:	89 0b                	mov    %ecx,(%ebx)
5209da:	8d 41 01             	lea    0x1(%ecx),%eax
5209dd:	8d 4f 01             	lea    0x1(%edi),%ecx
5209e0:	03 c7                	add    %edi,%eax
5209e2:	51                   	push   %ecx
5209e3:	ff 75 b4             	push   -0x4c(%ebp)
5209e6:	89 45 bc             	mov    %eax,-0x44(%ebp)
5209e9:	ff 33                	push   (%ebx)
5209eb:	e8 10 25 0c 00       	call   0x5e2f00
5209f0:	8b 45 b0             	mov    -0x50(%ebp),%eax
5209f3:	33 c9                	xor    %ecx,%ecx
5209f5:	8b 7d dc             	mov    -0x24(%ebp),%edi
5209f8:	83 c4 0c             	add    $0xc,%esp
5209fb:	8b 55 e0             	mov    -0x20(%ebp),%edx
5209fe:	85 c0                	test   %eax,%eax
520a00:	88 43 36             	mov    %al,0x36(%ebx)
520a03:	8b 43 38             	mov    0x38(%ebx),%eax
520a06:	0f 95 c1             	setne  %cl
520a09:	83 e0 f7             	and    $0xfffffff7,%eax
520a0c:	c1 e1 03             	shl    $0x3,%ecx
520a0f:	0b c8                	or     %eax,%ecx
520a11:	89 53 0c             	mov    %edx,0xc(%ebx)
520a14:	0f b6 45 30          	movzbl 0x30(%ebp),%eax
520a18:	83 e1 fc             	and    $0xfffffffc,%ecx
520a1b:	83 e0 03             	and    $0x3,%eax
520a1e:	0b c8                	or     %eax,%ecx
520a20:	89 4b 38             	mov    %ecx,0x38(%ebx)
520a23:	8b 47 10             	mov    0x10(%edi),%eax
520a26:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
520a29:	8b 44 01 0c          	mov    0xc(%ecx,%eax,1),%eax
520a2d:	89 43 18             	mov    %eax,0x18(%ebx)
520a30:	8b 45 cc             	mov    -0x34(%ebp),%eax
520a33:	66 8b 00             	mov    (%eax),%ax
520a36:	66 89 43 32          	mov    %ax,0x32(%ebx)
520a3a:	8b 45 a8             	mov    -0x58(%ebp),%eax
520a3d:	85 c0                	test   %eax,%eax
520a3f:	74 1c                	je     0x520a5d
520a41:	6a 00                	push   $0x0
520a43:	50                   	push   %eax
520a44:	6a 02                	push   $0x2
520a46:	52                   	push   %edx
520a47:	56                   	push   %esi
520a48:	e8 33 7a 01 00       	call   0x538480
520a4d:	8b 45 a8             	mov    -0x58(%ebp),%eax
520a50:	83 c4 14             	add    $0x14,%esp
520a53:	89 43 24             	mov    %eax,0x24(%ebx)
520a56:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%ebp)
520a5d:	8b 45 d8             	mov    -0x28(%ebp),%eax
520a60:	8b 40 0c             	mov    0xc(%eax),%eax
520a63:	80 78 4c 04          	cmpb   $0x4,0x4c(%eax)
520a67:	1b c0                	sbb    %eax,%eax
520a69:	f7 d8                	neg    %eax
520a6b:	48                   	dec    %eax
520a6c:	80 be c8 00 00 00 02 	cmpb   $0x2,0xc8(%esi)
520a73:	89 45 a4             	mov    %eax,-0x5c(%ebp)
520a76:	8b 45 cc             	mov    -0x34(%ebp),%eax
520a79:	8d 48 04             	lea    0x4(%eax),%ecx
520a7c:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
520a7f:	72 0a                	jb     0x520a8b
520a81:	89 43 28             	mov    %eax,0x28(%ebx)
520a84:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
520a8b:	33 d2                	xor    %edx,%edx
520a8d:	33 c0                	xor    %eax,%eax
520a8f:	89 55 d8             	mov    %edx,-0x28(%ebp)
520a92:	66 3b 43 32          	cmp    0x32(%ebx),%ax
520a96:	0f 83 5d 01 00 00    	jae    0x520bf9
520a9c:	0f 1f 40 00          	nopl   0x0(%eax)
520aa0:	ff 31                	push   (%ecx)
520aa2:	e8 c9 d1 01 00       	call   0x53dc70
520aa7:	8b 45 c4             	mov    -0x3c(%ebp),%eax
520aaa:	6a 00                	push   $0x0
520aac:	ff 30                	push   (%eax)
520aae:	6a 20                	push   $0x20
520ab0:	ff 75 e0             	push   -0x20(%ebp)
520ab3:	56                   	push   %esi
520ab4:	e8 c7 79 01 00       	call   0x538480
520ab9:	83 c4 18             	add    $0x18,%esp
520abc:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
520ac0:	0f 85 41 05 00 00    	jne    0x521007
520ac6:	8b 45 c4             	mov    -0x3c(%ebp),%eax
520ac9:	ff 30                	push   (%eax)
520acb:	e8 50 72 00 00       	call   0x527d20
520ad0:	83 c4 04             	add    $0x4,%esp
520ad3:	80 38 a4             	cmpb   $0xa4,(%eax)
520ad6:	74 3c                	je     0x520b14
520ad8:	8b 45 e0             	mov    -0x20(%ebp),%eax
520adb:	3b 86 e4 00 00 00    	cmp    0xe4(%esi),%eax
520ae1:	0f 84 5c 01 00 00    	je     0x520c43
520ae7:	83 7b 28 00          	cmpl   $0x0,0x28(%ebx)
520aeb:	75 0d                	jne    0x520afa
520aed:	8b 45 cc             	mov    -0x34(%ebp),%eax
520af0:	89 43 28             	mov    %eax,0x28(%ebx)
520af3:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
520afa:	8b 43 04             	mov    0x4(%ebx),%eax
520afd:	b9 fe ff ff ff       	mov    $0xfffffffe,%ecx
520b02:	8b 55 d8             	mov    -0x28(%ebp),%edx
520b05:	8b f9                	mov    %ecx,%edi
520b07:	66 89 3c 50          	mov    %di,(%eax,%edx,2)
520b0b:	83 63 38 f7          	andl   $0xfffffff7,0x38(%ebx)
520b0f:	8b 7d dc             	mov    -0x24(%ebp),%edi
520b12:	eb 40                	jmp    0x520b54
520b14:	0f bf 48 20          	movswl 0x20(%eax),%ecx
520b18:	8b 45 e0             	mov    -0x20(%ebp),%eax
520b1b:	85 c9                	test   %ecx,%ecx
520b1d:	79 06                	jns    0x520b25
520b1f:	0f bf 48 28          	movswl 0x28(%eax),%ecx
520b23:	eb 25                	jmp    0x520b4a
520b25:	8b 40 04             	mov    0x4(%eax),%eax
520b28:	8d 14 89             	lea    (%ecx,%ecx,4),%edx
520b2b:	80 7c 90 0c 00       	cmpb   $0x0,0xc(%eax,%edx,4)
520b30:	75 04                	jne    0x520b36
520b32:	83 63 38 f7          	andl   $0xfffffff7,0x38(%ebx)
520b36:	8b 45 e0             	mov    -0x20(%ebp),%eax
520b39:	8b 40 04             	mov    0x4(%eax),%eax
520b3c:	f6 44 90 10 20       	testb  $0x20,0x10(%eax,%edx,4)
520b41:	74 07                	je     0x520b4a
520b43:	81 4b 38 00 04 00 00 	orl    $0x400,0x38(%ebx)
520b4a:	8b 43 04             	mov    0x4(%ebx),%eax
520b4d:	8b 55 d8             	mov    -0x28(%ebp),%edx
520b50:	66 89 0c 50          	mov    %cx,(%eax,%edx,2)
520b54:	8b 45 c4             	mov    -0x3c(%ebp),%eax
520b57:	8b 00                	mov    (%eax),%eax
520b59:	80 38 6f             	cmpb   $0x6f,(%eax)
520b5c:	75 2c                	jne    0x520b8a
520b5e:	8b 70 08             	mov    0x8(%eax),%esi
520b61:	56                   	push   %esi
520b62:	e8 29 d1 01 00       	call   0x53dc90
520b67:	8d 78 01             	lea    0x1(%eax),%edi
520b6a:	57                   	push   %edi
520b6b:	56                   	push   %esi
520b6c:	8b 75 bc             	mov    -0x44(%ebp),%esi
520b6f:	56                   	push   %esi
520b70:	e8 8b 23 0c 00       	call   0x5e2f00
520b75:	8b c6                	mov    %esi,%eax
520b77:	89 75 d0             	mov    %esi,-0x30(%ebp)
520b7a:	83 c4 10             	add    $0x10,%esp
520b7d:	03 f7                	add    %edi,%esi
520b7f:	8b 7d dc             	mov    -0x24(%ebp),%edi
520b82:	89 75 bc             	mov    %esi,-0x44(%ebp)
520b85:	8b 75 c0             	mov    -0x40(%ebp),%esi
520b88:	eb 14                	jmp    0x520b9e
520b8a:	85 c9                	test   %ecx,%ecx
520b8c:	78 14                	js     0x520ba2
520b8e:	8b 45 e0             	mov    -0x20(%ebp),%eax
520b91:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
520b94:	8b 40 04             	mov    0x4(%eax),%eax
520b97:	8b 44 88 08          	mov    0x8(%eax,%ecx,4),%eax
520b9b:	89 45 d0             	mov    %eax,-0x30(%ebp)
520b9e:	85 c0                	test   %eax,%eax
520ba0:	75 08                	jne    0x520baa
520ba2:	b8 40 1c 6b 00       	mov    $0x6b1c40,%eax
520ba7:	89 45 d0             	mov    %eax,-0x30(%ebp)
520baa:	80 bf a5 00 00 00 00 	cmpb   $0x0,0xa5(%edi)
520bb1:	75 12                	jne    0x520bc5
520bb3:	50                   	push   %eax
520bb4:	56                   	push   %esi
520bb5:	e8 c6 fe 00 00       	call   0x530a80
520bba:	83 c4 08             	add    $0x8,%esp
520bbd:	85 c0                	test   %eax,%eax
520bbf:	0f 84 42 04 00 00    	je     0x521007
520bc5:	8b 55 d8             	mov    -0x28(%ebp),%edx
520bc8:	8b 43 20             	mov    0x20(%ebx),%eax
520bcb:	8b 4d d0             	mov    -0x30(%ebp),%ecx
520bce:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
520bd1:	8b 45 c4             	mov    -0x3c(%ebp),%eax
520bd4:	8a 48 08             	mov    0x8(%eax),%cl
520bd7:	8b 43 1c             	mov    0x1c(%ebx),%eax
520bda:	22 4d a4             	and    -0x5c(%ebp),%cl
520bdd:	88 0c 02             	mov    %cl,(%edx,%eax,1)
520be0:	42                   	inc    %edx
520be1:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
520be4:	0f b7 43 32          	movzwl 0x32(%ebx),%eax
520be8:	83 c1 14             	add    $0x14,%ecx
520beb:	89 55 d8             	mov    %edx,-0x28(%ebp)
520bee:	89 4d c4             	mov    %ecx,-0x3c(%ebp)