535388:	e8 93 c6 00 00       	call   0x541a20
53538d:	ff 75 d8             	push   -0x28(%ebp)
535390:	e8 1b 1b fe ff       	call   0x516eb0
535395:	e9 90 19 00 00       	jmp    0x536d2a
53539a:	85 c9                	test   %ecx,%ecx
53539c:	0f 84 8b 19 00 00    	je     0x536d2d
5353a2:	ff 75 ac             	push   -0x54(%ebp)
5353a5:	51                   	push   %ecx
5353a6:	6a 02                	push   $0x2
5353a8:	ff 75 d4             	push   -0x2c(%ebp)
5353ab:	e8 40 b7 ff ff       	call   0x530af0
5353b0:	8b f8                	mov    %eax,%edi
5353b2:	83 c4 10             	add    $0x10,%esp
5353b5:	89 7d bc             	mov    %edi,-0x44(%ebp)
5353b8:	85 ff                	test   %edi,%edi
5353ba:	0f 84 6d 19 00 00    	je     0x536d2d
5353c0:	ff 77 48             	push   0x48(%edi)
5353c3:	ff 75 d8             	push   -0x28(%ebp)
5353c6:	e8 95 46 00 00       	call   0x539a60
5353cb:	57                   	push   %edi
5353cc:	8b d0                	mov    %eax,%edx
5353ce:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
5353d5:	e8 f6 1f 00 00       	call   0x5373d0
5353da:	89 45 d0             	mov    %eax,-0x30(%ebp)
5353dd:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5353e0:	52                   	push   %edx
5353e1:	50                   	push   %eax
5353e2:	c7 40 2c 07 00 00 00 	movl   $0x7,0x2c(%eax)
5353e9:	e8 f2 9e fe ff       	call   0x51f2e0
5353ee:	57                   	push   %edi
5353ef:	ff 75 d4             	push   -0x2c(%ebp)
5353f2:	e8 e9 87 01 00       	call   0x54dbe0
5353f7:	8b 57 04             	mov    0x4(%edi),%edx
5353fa:	33 c9                	xor    %ecx,%ecx
5353fc:	0f b7 47 2a          	movzwl 0x2a(%edi),%eax
535400:	83 c4 1c             	add    $0x1c,%esp
535403:	33 ff                	xor    %edi,%edi
535405:	89 4d c8             	mov    %ecx,-0x38(%ebp)
535408:	89 55 b4             	mov    %edx,-0x4c(%ebp)
53540b:	66 3b f8             	cmp    %ax,%di
53540e:	0f 8d 19 19 00 00    	jge    0x536d2d
535414:	0f b7 42 10          	movzwl 0x10(%edx),%eax
535418:	33 ff                	xor    %edi,%edi
53541a:	a8 62                	test   $0x62,%al
53541c:	74 2b                	je     0x535449
53541e:	8b 43 08             	mov    0x8(%ebx),%eax
535421:	0b 43 0c             	or     0xc(%ebx),%eax
535424:	75 08                	jne    0x53542e
535426:	ff 45 cc             	incl   -0x34(%ebp)
535429:	e9 cd 00 00 00       	jmp    0x5354fb
53542e:	0f b7 42 10          	movzwl 0x10(%edx),%eax
535432:	a8 20                	test   $0x20,%al
535434:	74 07                	je     0x53543d
535436:	bf 02 00 00 00       	mov    $0x2,%edi
53543b:	eb 0c                	jmp    0x535449
53543d:	0f b6 f8             	movzbl %al,%edi
535440:	83 e7 40             	and    $0x40,%edi
535443:	83 cf 20             	or     $0x20,%edi
535446:	c1 ef 05             	shr    $0x5,%edi
535449:	a8 01                	test   $0x1,%al
53544b:	75 04                	jne    0x535451
53544d:	33 c9                	xor    %ecx,%ecx
53544f:	eb 3c                	jmp    0x53548d
535451:	83 7d d0 00          	cmpl   $0x0,-0x30(%ebp)
535455:	b9 01 00 00 00       	mov    $0x1,%ecx
53545a:	74 31                	je     0x53548d
53545c:	8b 75 bc             	mov    -0x44(%ebp),%esi
53545f:	0f b7 46 2a          	movzwl 0x2a(%esi),%eax
535463:	8b 75 a4             	mov    -0x5c(%ebp),%esi
535466:	98                   	cwtl
535467:	89 45 e8             	mov    %eax,-0x18(%ebp)
53546a:	3b c1                	cmp    %ecx,%eax
53546c:	7c 1f                	jl     0x53548d
53546e:	8b 45 d0             	mov    -0x30(%ebp),%eax
535471:	8b 75 e8             	mov    -0x18(%ebp),%esi
535474:	8b 50 04             	mov    0x4(%eax),%edx
535477:	0f bf 02             	movswl (%edx),%eax
53547a:	3b 45 c8             	cmp    -0x38(%ebp),%eax
53547d:	74 08                	je     0x535487
53547f:	41                   	inc    %ecx
535480:	83 c2 02             	add    $0x2,%edx
535483:	3b ce                	cmp    %esi,%ecx
535485:	7e f0                	jle    0x535477
535487:	8b 75 a4             	mov    -0x5c(%ebp),%esi
53548a:	8b 55 b4             	mov    -0x4c(%ebp),%edx
53548d:	8b 42 04             	mov    0x4(%edx),%eax
535490:	85 c0                	test   %eax,%eax
535492:	74 0d                	je     0x5354a1
535494:	83 ff 02             	cmp    $0x2,%edi
535497:	73 08                	jae    0x5354a1
535499:	8b 40 08             	mov    0x8(%eax),%eax
53549c:	89 45 9c             	mov    %eax,-0x64(%ebp)
53549f:	eb 07                	jmp    0x5354a8
5354a1:	c7 45 9c 00 00 00 00 	movl   $0x0,-0x64(%ebp)
5354a8:	8b 43 08             	mov    0x8(%ebx),%eax
5354ab:	0b 43 0c             	or     0xc(%ebx),%eax
5354ae:	c7 45 b0 a4 ab 6b 00 	movl   $0x6baba4,-0x50(%ebp)
5354b5:	75 07                	jne    0x5354be
5354b7:	c7 45 b0 ac ab 6b 00 	movl   $0x6babac,-0x50(%ebp)
5354be:	57                   	push   %edi
5354bf:	33 c0                	xor    %eax,%eax
5354c1:	38 42 0c             	cmp    %al,0xc(%edx)
5354c4:	51                   	push   %ecx
5354c5:	ff 75 9c             	push   -0x64(%ebp)
5354c8:	0f 95 c0             	setne  %al
5354cb:	50                   	push   %eax
5354cc:	68 ad 57 6e 00       	push   $0x6e57ad
5354d1:	52                   	push   %edx
5354d2:	e8 f9 9f fe ff       	call   0x51f4d0
5354d7:	83 c4 08             	add    $0x8,%esp
5354da:	50                   	push   %eax
5354db:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5354de:	ff 30                	push   (%eax)
5354e0:	8b 45 c8             	mov    -0x38(%ebp),%eax
5354e3:	2b 45 cc             	sub    -0x34(%ebp),%eax
5354e6:	50                   	push   %eax
5354e7:	ff 75 b0             	push   -0x50(%ebp)
5354ea:	6a 01                	push   $0x1
5354ec:	56                   	push   %esi
5354ed:	e8 3e 6e 01 00       	call   0x54c330
5354f2:	8b 4d c8             	mov    -0x38(%ebp),%ecx
5354f5:	83 c4 28             	add    $0x28,%esp
5354f8:	8b 55 b4             	mov    -0x4c(%ebp),%edx
5354fb:	8b 45 bc             	mov    -0x44(%ebp),%eax
5354fe:	41                   	inc    %ecx
5354ff:	83 c2 14             	add    $0x14,%edx
535502:	89 4d c8             	mov    %ecx,-0x38(%ebp)
535505:	89 55 b4             	mov    %edx,-0x4c(%ebp)
535508:	0f b7 40 2a          	movzwl 0x2a(%eax),%eax
53550c:	98                   	cwtl
53550d:	3b c8                	cmp    %eax,%ecx
53550f:	0f 8c ff fe ff ff    	jl     0x535414
535515:	e9 13 18 00 00       	jmp    0x536d2d
53551a:	85 c9                	test   %ecx,%ecx
53551c:	0f 84 0b 18 00 00    	je     0x536d2d
535522:	ff 75 ac             	push   -0x54(%ebp)
535525:	51                   	push   %ecx
535526:	ff 75 d8             	push   -0x28(%ebp)
535529:	e8 f2 33 ff ff       	call   0x528920
53552e:	8b f8                	mov    %eax,%edi
535530:	83 c4 0c             	add    $0xc,%esp
535533:	89 7d cc             	mov    %edi,-0x34(%ebp)
535536:	85 ff                	test   %edi,%edi
535538:	75 3b                	jne    0x535575
53553a:	ff 75 ac             	push   -0x54(%ebp)
53553d:	ff 75 b8             	push   -0x48(%ebp)
535540:	6a 02                	push   $0x2
535542:	ff 75 d4             	push   -0x2c(%ebp)
535545:	e8 a6 b5 ff ff       	call   0x530af0
53554a:	83 c4 10             	add    $0x10,%esp
53554d:	85 c0                	test   %eax,%eax
53554f:	0f 84 d8 17 00 00    	je     0x536d2d
535555:	f6 40 24 80          	testb  $0x80,0x24(%eax)
535559:	0f 84 ce 17 00 00    	je     0x536d2d
53555f:	50                   	push   %eax
535560:	e8 6b 1e 00 00       	call   0x5373d0
535565:	8b f8                	mov    %eax,%edi
535567:	89 45 cc             	mov    %eax,-0x34(%ebp)
53556a:	83 c4 04             	add    $0x4,%esp
53556d:	85 ff                	test   %edi,%edi
53556f:	0f 84 b8 17 00 00    	je     0x536d2d
535575:	ff 77 18             	push   0x18(%edi)
535578:	ff 75 d8             	push   -0x28(%ebp)
53557b:	e8 e0 44 00 00       	call   0x539a60
535580:	8b 4b 08             	mov    0x8(%ebx),%ecx
535583:	83 c4 08             	add    $0x8,%esp
535586:	0b 4b 0c             	or     0xc(%ebx),%ecx
535589:	8b d0                	mov    %eax,%edx
53558b:	74 12                	je     0x53559f
53558d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
535590:	0f b7 4f 34          	movzwl 0x34(%edi),%ecx
535594:	c7 40 2c 06 00 00 00 	movl   $0x6,0x2c(%eax)
53559b:	8b c1                	mov    %ecx,%eax
53559d:	eb 0e                	jmp    0x5355ad
53559f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5355a2:	0f b7 47 32          	movzwl 0x32(%edi),%eax
5355a6:	c7 41 2c 03 00 00 00 	movl   $0x3,0x2c(%ecx)
5355ad:	52                   	push   %edx
5355ae:	ff 75 d4             	push   -0x2c(%ebp)
5355b1:	89 45 c8             	mov    %eax,-0x38(%ebp)
5355b4:	8b 47 0c             	mov    0xc(%edi),%eax
5355b7:	89 45 e8             	mov    %eax,-0x18(%ebp)
5355ba:	e8 21 9d fe ff       	call   0x51f2e0
5355bf:	8b 4d c8             	mov    -0x38(%ebp),%ecx
5355c2:	83 c4 08             	add    $0x8,%esp
5355c5:	33 ff                	xor    %edi,%edi
5355c7:	66 85 c9             	test   %cx,%cx
5355ca:	0f 84 5d 17 00 00    	je     0x536d2d
5355d0:	8b 45 cc             	mov    -0x34(%ebp),%eax
5355d3:	8b 40 04             	mov    0x4(%eax),%eax
5355d6:	0f b7 14 78          	movzwl (%eax,%edi,2),%edx
5355da:	66 85 d2             	test   %dx,%dx
5355dd:	79 04                	jns    0x5355e3
5355df:	33 c0                	xor    %eax,%eax
5355e1:	eb 0f                	jmp    0x5355f2
5355e3:	0f bf c2             	movswl %dx,%eax
5355e6:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5355e9:	8b 45 e8             	mov    -0x18(%ebp),%eax
5355ec:	8b 40 04             	mov    0x4(%eax),%eax
5355ef:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5355f2:	50                   	push   %eax
5355f3:	0f bf c2             	movswl %dx,%eax
5355f6:	50                   	push   %eax
5355f7:	57                   	push   %edi
5355f8:	68 b4 ab 6b 00       	push   $0x6babb4
5355fd:	6a 01                	push   $0x1
5355ff:	56                   	push   %esi
535600:	e8 2b 6d 01 00       	call   0x54c330
535605:	8b 43 08             	mov    0x8(%ebx),%eax
535608:	83 c4 18             	add    $0x18,%esp
53560b:	0b 43 0c             	or     0xc(%ebx),%eax
53560e:	74 2d                	je     0x53563d
535610:	8b 55 cc             	mov    -0x34(%ebp),%edx
535613:	33 c9                	xor    %ecx,%ecx
535615:	0f b7 42 32          	movzwl 0x32(%edx),%eax
535619:	3b f8                	cmp    %eax,%edi
53561b:	8b 42 20             	mov    0x20(%edx),%eax
53561e:	0f 9c c1             	setl   %cl
535621:	51                   	push   %ecx
535622:	ff 34 b8             	push   (%eax,%edi,4)
535625:	8b 42 1c             	mov    0x1c(%edx),%eax
535628:	0f b6 04 38          	movzbl (%eax,%edi,1),%eax
53562c:	50                   	push   %eax
53562d:	68 bc ab 6b 00       	push   $0x6babbc
535632:	6a 04                	push   $0x4
535634:	56                   	push   %esi
535635:	e8 f6 6c 01 00       	call   0x54c330
53563a:	83 c4 18             	add    $0x18,%esp
53563d:	8b 45 d4             	mov    -0x2c(%ebp),%eax
535640:	ff 70 2c             	push   0x2c(%eax)
535643:	6a 01                	push   $0x1
535645:	6a 50                	push   $0x50
535647:	56                   	push   %esi
535648:	e8 93 c4 00 00       	call   0x541ae0
53564d:	8b 4d c8             	mov    -0x38(%ebp),%ecx
535650:	47                   	inc    %edi
535651:	0f b7 c1             	movzwl %cx,%eax
535654:	83 c4 10             	add    $0x10,%esp
535657:	3b f8                	cmp    %eax,%edi
535659:	0f 8c 71 ff ff ff    	jl     0x5355d0
53565f:	e9 c9 16 00 00       	jmp    0x536d2d
535664:	85 c9                	test   %ecx,%ecx
535666:	0f 84 c1 16 00 00    	je     0x536d2d
53566c:	ff 75 ac             	push   -0x54(%ebp)
53566f:	51                   	push   %ecx
535670:	ff 75 d8             	push   -0x28(%ebp)
535673:	e8 48 33 ff ff       	call   0x5289c0
535678:	8b f8                	mov    %eax,%edi
53567a:	83 c4 0c             	add    $0xc,%esp
53567d:	85 ff                	test   %edi,%edi
53567f:	0f 84 a8 16 00 00    	je     0x536d2d
535685:	ff 77 48             	push   0x48(%edi)
535688:	ff 75 d8             	push   -0x28(%ebp)
53568b:	e8 d0 43 00 00       	call   0x539a60
535690:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
535693:	50                   	push   %eax
535694:	51                   	push   %ecx
535695:	c7 41 2c 05 00 00 00 	movl   $0x5,0x2c(%ecx)
53569c:	e8 3f 9c fe ff       	call   0x51f2e0
5356a1:	8b 7f 08             	mov    0x8(%edi),%edi
5356a4:	83 c4 10             	add    $0x10,%esp
5356a7:	33 db                	xor    %ebx,%ebx
5356a9:	85 ff                	test   %edi,%edi
5356ab:	0f 84 7c 16 00 00    	je     0x536d2d
5356b1:	c7 45 dc c4 ab 6b 00 	movl   $0x6babc4,-0x24(%ebp)
5356b8:	c7 45 e0 c8 ab 6b 00 	movl   $0x6babc8,-0x20(%ebp)
5356bf:	c7 45 e4 28 6a 6b 00 	movl   $0x6b6a28,-0x1c(%ebp)
5356c6:	33 c0                	xor    %eax,%eax
5356c8:	39 47 24             	cmp    %eax,0x24(%edi)
5356cb:	0f 95 c0             	setne  %al
5356ce:	50                   	push   %eax
5356cf:	8b 47 38             	mov    0x38(%edi),%eax
5356d2:	83 e0 03             	and    $0x3,%eax
5356d5:	ff 74 85 dc          	push   -0x24(%ebp,%eax,4)
5356d9:	33 c0                	xor    %eax,%eax
5356db:	38 47 36             	cmp    %al,0x36(%edi)
5356de:	0f 95 c0             	setne  %al
5356e1:	50                   	push   %eax
5356e2:	ff 37                	push   (%edi)
5356e4:	53                   	push   %ebx
5356e5:	68 cc ab 6b 00       	push   $0x6babcc
5356ea:	6a 01                	push   $0x1
5356ec:	56                   	push   %esi
5356ed:	e8 3e 6c 01 00       	call   0x54c330
5356f2:	8b 7f 14             	mov    0x14(%edi),%edi
5356f5:	83 c4 20             	add    $0x20,%esp
5356f8:	43                   	inc    %ebx
5356f9:	85 ff                	test   %edi,%edi
5356fb:	75 c9                	jne    0x5356c6
5356fd:	e9 2b 16 00 00       	jmp    0x536d2d
535702:	8b 45 d4             	mov    -0x2c(%ebp),%eax
535705:	33 ff                	xor    %edi,%edi
535707:	c7 40 2c 03 00 00 00 	movl   $0x3,0x2c(%eax)
53570e:	8b 45 d8             	mov    -0x28(%ebp),%eax
535711:	39 78 14             	cmp    %edi,0x14(%eax)
535714:	0f 8e 13 16 00 00    	jle    0x536d2d
53571a:	33 db                	xor    %ebx,%ebx
53571c:	0f 1f 40 00          	nopl   0x0(%eax)
535720:	8b 48 10             	mov    0x10(%eax),%ecx
535723:	8b 44 19 04          	mov    0x4(%ecx,%ebx,1),%eax
535727:	85 c0                	test   %eax,%eax
535729:	74 1b                	je     0x535746
53572b:	50                   	push   %eax
53572c:	e8 6f 63 fe ff       	call   0x51baa0
535731:	50                   	push   %eax
535732:	ff 34 19             	push   (%ecx,%ebx,1)
535735:	57                   	push   %edi
535736:	68 d4 ab 6b 00       	push   $0x6babd4
53573b:	6a 01                	push   $0x1
53573d:	56                   	push   %esi
53573e:	e8 ed 6b 01 00       	call   0x54c330
535743:	83 c4 1c             	add    $0x1c,%esp
535746:	8b 45 d8             	mov    -0x28(%ebp),%eax
535749:	47                   	inc    %edi
53574a:	83 c3 10             	add    $0x10,%ebx
53574d:	3b 78 14             	cmp    0x14(%eax),%edi
535750:	7c ce                	jl     0x535720
535752:	e9 d6 15 00 00       	jmp    0x536d2d
535757:	8b 45 d4             	mov    -0x2c(%ebp),%eax
53575a:	33 db                	xor    %ebx,%ebx
53575c:	c7 40 2c 02 00 00 00 	movl   $0x2,0x2c(%eax)
535763:	8b 45 d8             	mov    -0x28(%ebp),%eax
535766:	8b b8 9c 01 00 00    	mov    0x19c(%eax),%edi
53576c:	85 ff                	test   %edi,%edi
53576e:	0f 84 b9 15 00 00    	je     0x536d2d
535774:	8b 47 08             	mov    0x8(%edi),%eax
535777:	ff 30                	push   (%eax)
535779:	53                   	push   %ebx
53577a:	68 d8 ab 6b 00       	push   $0x6babd8
53577f:	6a 01                	push   $0x1
535781:	56                   	push   %esi
535782:	e8 a9 6b 01 00       	call   0x54c330
535787:	8b 3f                	mov    (%edi),%edi
535789:	83 c4 14             	add    $0x14,%esp
53578c:	43                   	inc    %ebx
53578d:	85 ff                	test   %edi,%edi
53578f:	75 e3                	jne    0x535774
535791:	e9 97 15 00 00       	jmp    0x536d2d
535796:	8b 45 d8             	mov    -0x28(%ebp),%eax
535799:	8b 58 18             	mov    0x18(%eax),%ebx
53579c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
53579f:	c1 eb 05             	shr    $0x5,%ebx
5357a2:	83 e3 01             	and    $0x1,%ebx
5357a5:	c7 40 2c 06 00 00 00 	movl   $0x6,0x2c(%eax)
5357ac:	b8 c0 ff 72 00       	mov    $0x72ffc0,%eax
5357b1:	89 45 d0             	mov    %eax,-0x30(%ebp)
5357b4:	8b 38                	mov    (%eax),%edi
5357b6:	85 ff                	test   %edi,%edi
5357b8:	74 1d                	je     0x5357d7
5357ba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)