5205a5:	c7 45 ac 00 00 00 00 	movl   $0x0,-0x54(%ebp)
5205ac:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
5205b3:	c7 45 c4 00 00 00 00 	movl   $0x0,-0x3c(%ebp)
5205ba:	89 4d b8             	mov    %ecx,-0x48(%ebp)
5205bd:	38 48 51             	cmp    %cl,0x51(%eax)
5205c0:	0f 85 93 0a 00 00    	jne    0x521059
5205c6:	39 4e 24             	cmp    %ecx,0x24(%esi)
5205c9:	0f 8f 8a 0a 00 00    	jg     0x521059
5205cf:	80 be c8 00 00 00 01 	cmpb   $0x1,0xc8(%esi)
5205d6:	75 0a                	jne    0x5205e2
5205d8:	80 7d 30 02          	cmpb   $0x2,0x30(%ebp)
5205dc:	0f 85 77 0a 00 00    	jne    0x521059
5205e2:	56                   	push   %esi
5205e3:	e8 a8 6e 01 00       	call   0x537490
5205e8:	83 c4 04             	add    $0x4,%esp
5205eb:	85 c0                	test   %eax,%eax
5205ed:	0f 85 66 0a 00 00    	jne    0x521059
5205f3:	8b 45 cc             	mov    -0x34(%ebp),%eax
5205f6:	50                   	push   %eax
5205f7:	56                   	push   %esi
5205f8:	e8 83 d3 00 00       	call   0x52d980
5205fd:	83 c4 08             	add    $0x8,%esp
520600:	85 c0                	test   %eax,%eax
520602:	0f 85 51 0a 00 00    	jne    0x521059
520608:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
52060b:	0f 84 d1 00 00 00    	je     0x5206e2
520611:	8d 45 ac             	lea    -0x54(%ebp),%eax
520614:	50                   	push   %eax
520615:	57                   	push   %edi
520616:	53                   	push   %ebx
520617:	56                   	push   %esi
520618:	e8 c3 e0 01 00       	call   0x53e6e0
52061d:	8b d8                	mov    %eax,%ebx
52061f:	83 c4 10             	add    $0x10,%esp
520622:	89 5d c8             	mov    %ebx,-0x38(%ebp)
520625:	85 db                	test   %ebx,%ebx
520627:	0f 88 2c 0a 00 00    	js     0x521059
52062d:	8b 45 dc             	mov    -0x24(%ebp),%eax
520630:	80 b8 a5 00 00 00 00 	cmpb   $0x0,0xa5(%eax)
520637:	75 2f                	jne    0x520668
520639:	ff 75 d4             	push   -0x2c(%ebp)
52063c:	56                   	push   %esi
52063d:	e8 3e cd 01 00       	call   0x53d380
520642:	83 c4 08             	add    $0x8,%esp
520645:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
520649:	8b 7d dc             	mov    -0x24(%ebp),%edi
52064c:	75 1c                	jne    0x52066a
52064e:	85 c0                	test   %eax,%eax
520650:	74 18                	je     0x52066a
520652:	8b 4f 10             	mov    0x10(%edi),%ecx
520655:	ba 01 00 00 00       	mov    $0x1,%edx
52065a:	8b 40 48             	mov    0x48(%eax),%eax
52065d:	3b 41 1c             	cmp    0x1c(%ecx),%eax
520660:	0f 44 da             	cmove  %edx,%ebx
520663:	89 5d c8             	mov    %ebx,-0x38(%ebp)
520666:	eb 02                	jmp    0x52066a
520668:	8b f8                	mov    %eax,%edi
52066a:	8b 4d ac             	mov    -0x54(%ebp),%ecx
52066d:	8d 45 e4             	lea    -0x1c(%ebp),%eax
520670:	51                   	push   %ecx
520671:	68 e4 a3 6b 00       	push   $0x6ba3e4
520676:	53                   	push   %ebx
520677:	56                   	push   %esi
520678:	50                   	push   %eax
520679:	e8 62 8a 00 00       	call   0x5290e0
52067e:	ff 75 d4             	push   -0x2c(%ebp)
520681:	8d 45 e4             	lea    -0x1c(%ebp),%eax
520684:	50                   	push   %eax
520685:	e8 a6 8b 00 00       	call   0x529230
52068a:	8b 45 d4             	mov    -0x2c(%ebp),%eax
52068d:	83 c0 08             	add    $0x8,%eax
520690:	50                   	push   %eax
520691:	6a 00                	push   $0x0
520693:	56                   	push   %esi
520694:	e8 97 05 01 00       	call   0x530c30
520699:	8b d0                	mov    %eax,%edx
52069b:	83 c4 28             	add    $0x28,%esp
52069e:	89 55 e0             	mov    %edx,-0x20(%ebp)
5206a1:	85 d2                	test   %edx,%edx
5206a3:	0f 84 b0 09 00 00    	je     0x521059
5206a9:	83 fb 01             	cmp    $0x1,%ebx
5206ac:	75 20                	jne    0x5206ce
5206ae:	8b 47 10             	mov    0x10(%edi),%eax
5206b1:	8b 40 1c             	mov    0x1c(%eax),%eax
5206b4:	3b 42 48             	cmp    0x48(%edx),%eax
5206b7:	74 15                	je     0x5206ce
5206b9:	ff 32                	push   (%edx)
5206bb:	68 ec a3 6b 00       	push   $0x6ba3ec
5206c0:	56                   	push   %esi
5206c1:	e8 9a 2b 00 00       	call   0x523260
5206c6:	83 c4 0c             	add    $0xc,%esp
5206c9:	e9 47 09 00 00       	jmp    0x521015
5206ce:	f6 42 24 80          	testb  $0x80,0x24(%edx)
5206d2:	74 36                	je     0x52070a
5206d4:	52                   	push   %edx
5206d5:	e8 f6 6c 01 00       	call   0x5373d0
5206da:	83 c4 04             	add    $0x4,%esp
5206dd:	89 45 b8             	mov    %eax,-0x48(%ebp)
5206e0:	eb 28                	jmp    0x52070a
5206e2:	8b 86 e4 00 00 00    	mov    0xe4(%esi),%eax
5206e8:	89 45 e0             	mov    %eax,-0x20(%ebp)
5206eb:	85 c0                	test   %eax,%eax
5206ed:	0f 84 66 09 00 00    	je     0x521059
5206f3:	ff 70 48             	push   0x48(%eax)
5206f6:	8b 7d dc             	mov    -0x24(%ebp),%edi
5206f9:	57                   	push   %edi
5206fa:	e8 61 93 01 00       	call   0x539a60
5206ff:	8b 55 e0             	mov    -0x20(%ebp),%edx
520702:	8b d8                	mov    %eax,%ebx
520704:	83 c4 08             	add    $0x8,%esp
520707:	89 5d c8             	mov    %ebx,-0x38(%ebp)
52070a:	8b 47 10             	mov    0x10(%edi),%eax
52070d:	8b cb                	mov    %ebx,%ecx
52070f:	8b 3a                	mov    (%edx),%edi
520711:	c1 e1 04             	shl    $0x4,%ecx
520714:	6a 07                	push   $0x7
520716:	03 c1                	add    %ecx,%eax
520718:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
52071b:	68 b0 92 6b 00       	push   $0x6b92b0
520720:	57                   	push   %edi
520721:	89 45 d8             	mov    %eax,-0x28(%ebp)
520724:	e8 37 f4 fb ff       	call   0x4dfb60
520729:	8b 5d dc             	mov    -0x24(%ebp),%ebx
52072c:	83 c4 0c             	add    $0xc,%esp
52072f:	85 c0                	test   %eax,%eax
520731:	75 21                	jne    0x520754
520733:	38 83 a5 00 00 00    	cmp    %al,0xa5(%ebx)
520739:	75 19                	jne    0x520754
52073b:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
52073e:	74 14                	je     0x520754
520740:	57                   	push   %edi
520741:	68 20 a4 6b 00       	push   $0x6ba420
520746:	56                   	push   %esi
520747:	e8 14 2b 00 00       	call   0x523260
52074c:	83 c4 0c             	add    $0xc,%esp
52074f:	e9 c1 08 00 00       	jmp    0x521015
520754:	8b 45 e0             	mov    -0x20(%ebp),%eax
520757:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
52075b:	74 10                	je     0x52076d
52075d:	68 3c a4 6b 00       	push   $0x6ba43c
520762:	56                   	push   %esi
520763:	e8 f8 2a 00 00       	call   0x523260
520768:	e9 a5 08 00 00       	jmp    0x521012
52076d:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
520771:	74 10                	je     0x520783
520773:	68 58 a4 6b 00       	push   $0x6ba458
520778:	56                   	push   %esi
520779:	e8 e2 2a 00 00       	call   0x523260
52077e:	e9 8f 08 00 00       	jmp    0x521012
520783:	8b 4d ac             	mov    -0x54(%ebp),%ecx
520786:	85 c9                	test   %ecx,%ecx
520788:	0f 84 a9 00 00 00    	je     0x520837
52078e:	8b 7d dc             	mov    -0x24(%ebp),%edi
520791:	51                   	push   %ecx
520792:	57                   	push   %edi
520793:	e8 98 0e 01 00       	call   0x531630
520798:	8b d8                	mov    %eax,%ebx
52079a:	83 c4 08             	add    $0x8,%esp
52079d:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
5207a0:	85 db                	test   %ebx,%ebx
5207a2:	0f 84 6d 08 00 00    	je     0x521015
5207a8:	8b 45 e0             	mov    -0x20(%ebp),%eax
5207ab:	ff 30                	push   (%eax)
5207ad:	68 e4 a3 6b 00       	push   $0x6ba3e4
5207b2:	53                   	push   %ebx
5207b3:	56                   	push   %esi
5207b4:	e8 07 d8 ff ff       	call   0x51dfc0
5207b9:	83 c4 10             	add    $0x10,%esp
5207bc:	85 c0                	test   %eax,%eax
5207be:	0f 85 51 08 00 00    	jne    0x521015
5207c4:	80 be c8 00 00 00 02 	cmpb   $0x2,0xc8(%esi)
5207cb:	0f 83 a3 00 00 00    	jae    0x520874
5207d1:	38 87 a5 00 00 00    	cmp    %al,0xa5(%edi)
5207d7:	75 23                	jne    0x5207fc
5207d9:	50                   	push   %eax
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