5503e9:	0f b6 42 10          	movzbl 0x10(%edx),%eax
5503ed:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
5503f0:	8b 43 04             	mov    0x4(%ebx),%eax
5503f3:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
5503f6:	83 c0 08             	add    $0x8,%eax
5503f9:	89 45 98             	mov    %eax,-0x68(%ebp)
5503fc:	f6 40 24 08          	testb  $0x8,0x24(%eax)
550400:	0f 84 eb 00 00 00    	je     0x5504f1
550406:	66 83 7d 9c 00       	cmpw   $0x0,-0x64(%ebp)
55040b:	75 0d                	jne    0x55041a
55040d:	f7 42 24 00 10 00 00 	testl  $0x1000,0x24(%edx)
550414:	0f 84 d7 00 00 00    	je     0x5504f1
55041a:	8b 42 08             	mov    0x8(%edx),%eax
55041d:	8b c8                	mov    %eax,%ecx
55041f:	8b 52 0c             	mov    0xc(%edx),%edx
550422:	23 cf                	and    %edi,%ecx
550424:	89 45 a4             	mov    %eax,-0x5c(%ebp)
550427:	8b c2                	mov    %edx,%eax
550429:	23 45 d4             	and    -0x2c(%ebp),%eax
55042c:	0b c8                	or     %eax,%ecx
55042e:	89 55 cc             	mov    %edx,-0x34(%ebp)
550431:	0f 85 ba 00 00 00    	jne    0x5504f1
550437:	8b 45 e4             	mov    -0x1c(%ebp),%eax
55043a:	8b 50 14             	mov    0x14(%eax),%edx
55043d:	8b f2                	mov    %edx,%esi
55043f:	8b 40 0c             	mov    0xc(%eax),%eax
550442:	8d 3c 40             	lea    (%eax,%eax,2),%edi
550445:	c1 e7 04             	shl    $0x4,%edi
550448:	03 fa                	add    %edx,%edi
55044a:	3b f7                	cmp    %edi,%esi
55044c:	73 33                	jae    0x550481
55044e:	66 90                	xchg   %ax,%ax
550450:	8b 4e 28             	mov    0x28(%esi),%ecx
550453:	8b 46 2c             	mov    0x2c(%esi),%eax
550456:	23 4d a4             	and    -0x5c(%ebp),%ecx
550459:	23 45 cc             	and    -0x34(%ebp),%eax
55045c:	0b c8                	or     %eax,%ecx
55045e:	74 14                	je     0x550474
550460:	8b 06                	mov    (%esi),%eax
550462:	f6 40 04 01          	testb  $0x1,0x4(%eax)
550466:	74 15                	je     0x55047d
550468:	8b 4d 98             	mov    -0x68(%ebp),%ecx
55046b:	0f bf 40 24          	movswl 0x24(%eax),%eax
55046f:	3b 41 2c             	cmp    0x2c(%ecx),%eax
550472:	75 09                	jne    0x55047d
550474:	83 c6 30             	add    $0x30,%esi
550477:	3b f7                	cmp    %edi,%esi
550479:	72 d5                	jb     0x550450
55047b:	eb 04                	jmp    0x550481
55047d:	3b f7                	cmp    %edi,%esi
55047f:	72 6a                	jb     0x5504eb
550481:	8b 45 a4             	mov    -0x5c(%ebp),%eax
550484:	8b 4d cc             	mov    -0x34(%ebp),%ecx
550487:	f7 d0                	not    %eax
550489:	21 45 bc             	and    %eax,-0x44(%ebp)
55048c:	f7 d1                	not    %ecx
55048e:	21 4d b8             	and    %ecx,-0x48(%ebp)
550491:	3b d7                	cmp    %edi,%edx
550493:	73 27                	jae    0x5504bc
550495:	8b 75 94             	mov    -0x6c(%ebp),%esi
550498:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
55049f:	00
5504a0:	8b 4a 28             	mov    0x28(%edx),%ecx
5504a3:	8b 42 2c             	mov    0x2c(%edx),%eax
5504a6:	23 4e 08             	and    0x8(%esi),%ecx
5504a9:	23 46 0c             	and    0xc(%esi),%eax
5504ac:	0b c8                	or     %eax,%ecx
5504ae:	74 05                	je     0x5504b5
5504b0:	66 83 4a 0a 04       	orw    $0x4,0xa(%edx)
5504b5:	83 c2 30             	add    $0x30,%edx
5504b8:	3b d7                	cmp    %edi,%edx
5504ba:	72 e4                	jb     0x5504a0
5504bc:	0f b6 4b 2c          	movzbl 0x2c(%ebx),%ecx
5504c0:	8b 75 a8             	mov    -0x58(%ebp),%esi
5504c3:	8d 41 ff             	lea    -0x1(%ecx),%eax
5504c6:	3b f0                	cmp    %eax,%esi
5504c8:	74 19                	je     0x5504e3
5504ca:	2b ce                	sub    %esi,%ecx
5504cc:	6b c1 58             	imul   $0x58,%ecx,%eax
5504cf:	83 e8 58             	sub    $0x58,%eax
5504d2:	50                   	push   %eax
5504d3:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5504d6:	50                   	push   %eax
5504d7:	83 c0 a8             	add    $0xffffffa8,%eax
5504da:	50                   	push   %eax
5504db:	e8 a0 2f 09 00       	call   0x5e3480
5504e0:	83 c4 0c             	add    $0xc,%esp
5504e3:	fe 4b 2c             	decb   0x2c(%ebx)
5504e6:	ff 4d c0             	decl   -0x40(%ebp)
5504e9:	eb 03                	jmp    0x5504ee
5504eb:	8b 75 a8             	mov    -0x58(%ebp),%esi
5504ee:	8b 7d a0             	mov    -0x60(%ebp),%edi
5504f1:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5504f4:	4e                   	dec    %esi
5504f5:	83 e8 58             	sub    $0x58,%eax
5504f8:	89 75 a8             	mov    %esi,-0x58(%ebp)
5504fb:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5504fe:	83 fe 01             	cmp    $0x1,%esi
550501:	0f 8d dc fe ff ff    	jge    0x5503e3
550507:	8b 0b                	mov    (%ebx),%ecx
550509:	0f bf 43 34          	movswl 0x34(%ebx),%eax
55050d:	01 81 84 00 00 00    	add    %eax,0x84(%ecx)
550513:	f6 45 d0 04          	testb  $0x4,-0x30(%ebp)
550517:	74 63                	je     0x55057c
550519:	8b 83 38 03 00 00    	mov    0x338(%ebx),%eax
55051f:	8b 48 24             	mov    0x24(%eax),%ecx
550522:	8b d1                	mov    %ecx,%edx
550524:	c1 ea 0c             	shr    $0xc,%edx
550527:	83 e2 01             	and    $0x1,%edx
55052a:	75 1f                	jne    0x55054b
55052c:	f6 45 d0 08          	testb  $0x8,-0x30(%ebp)
550530:	74 4a                	je     0x55057c
550532:	8b 45 d8             	mov    -0x28(%ebp),%eax
550535:	8b 40 18             	mov    0x18(%eax),%eax
550538:	39 50 38             	cmp    %edx,0x38(%eax)
55053b:	75 3f                	jne    0x55057c
55053d:	f7 c1 00 20 00 00    	test   $0x2000,%ecx
550543:	74 06                	je     0x55054b
550545:	f6 45 d0 10          	testb  $0x10,-0x30(%ebp)
550549:	74 31                	je     0x55057c
55054b:	85 d2                	test   %edx,%edx
55054d:	8b 55 d8             	mov    -0x28(%ebp),%edx
550550:	0f 94 c0             	sete   %al
550553:	fe c0                	inc    %al
550555:	88 43 2e             	mov    %al,0x2e(%ebx)
550558:	8b 42 18             	mov    0x18(%edx),%eax
55055b:	f6 40 24 80          	testb  $0x80,0x24(%eax)
55055f:	75 1e                	jne    0x55057f
550561:	f6 c1 40             	test   $0x40,%cl
550564:	74 19                	je     0x55057f
550566:	8b 83 38 03 00 00    	mov    0x338(%ebx),%eax
55056c:	83 e1 bf             	and    $0xffffffbf,%ecx
55056f:	89 48 24             	mov    %ecx,0x24(%eax)
550572:	8a 45 d0             	mov    -0x30(%ebp),%al
550575:	24 08                	and    $0x8,%al
550577:	88 45 cb             	mov    %al,-0x35(%ebp)
55057a:	eb 03                	jmp    0x55057f
55057c:	8b 55 d8             	mov    -0x28(%ebp),%edx
55057f:	8b 4d c0             	mov    -0x40(%ebp),%ecx
550582:	85 c9                	test   %ecx,%ecx
550584:	0f 8e 10 02 00 00    	jle    0x55079a
55058a:	8b 7d 90             	mov    -0x70(%ebp),%edi
55058d:	83 c7 48             	add    $0x48,%edi
550590:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
550593:	89 7d d4             	mov    %edi,-0x2c(%ebp)
550596:	66 66 0f 1f 84 00 00 	data16 nopw 0x0(%eax,%eax,1)
55059d:	00 00 00
5505a0:	0f b6 47 ec          	movzbl -0x14(%edi),%eax
5505a4:	be c0 bd f0 ff       	mov    $0xfff0bdc0,%esi
5505a9:	8d 04 c0             	lea    (%eax,%eax,8),%eax
5505ac:	8d 14 c2             	lea    (%edx,%eax,8),%edx
5505af:	83 c2 08             	add    $0x8,%edx
5505b2:	89 55 cc             	mov    %edx,-0x34(%ebp)
5505b5:	8b 5a 10             	mov    0x10(%edx),%ebx
5505b8:	8b 4b 48             	mov    0x48(%ebx),%ecx
5505bb:	85 c9                	test   %ecx,%ecx
5505bd:	74 19                	je     0x5505d8
5505bf:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5505c2:	33 f6                	xor    %esi,%esi
5505c4:	8b 40 10             	mov    0x10(%eax),%eax
5505c7:	83 c0 0c             	add    $0xc,%eax
5505ca:	39 08                	cmp    %ecx,(%eax)
5505cc:	74 0a                	je     0x5505d8
5505ce:	66 90                	xchg   %ax,%ax
5505d0:	8d 40 10             	lea    0x10(%eax),%eax
5505d3:	46                   	inc    %esi
5505d4:	39 08                	cmp    %ecx,(%eax)
5505d6:	75 f8                	jne    0x5505d0
5505d8:	f6 43 24 02          	testb  $0x2,0x24(%ebx)
5505dc:	8b 3f                	mov    (%edi),%edi
5505de:	89 7d a4             	mov    %edi,-0x5c(%ebp)
5505e1:	0f 85 26 01 00 00    	jne    0x55070d
5505e7:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
5505eb:	0f 85 1c 01 00 00    	jne    0x55070d
5505f1:	8b 47 24             	mov    0x24(%edi),%eax
5505f4:	a9 00 04 00 00       	test   $0x400,%eax
5505f9:	74 2b                	je     0x550626
5505fb:	6a f4                	push   $0xfffffff4
5505fd:	53                   	push   %ebx
5505fe:	ff 75 c4             	push   -0x3c(%ebp)
550601:	e8 6a d0 fd ff       	call   0x52d670
550606:	83 c4 08             	add    $0x8,%esp
550609:	50                   	push   %eax
55060a:	6a 00                	push   $0x0
55060c:	6a 00                	push   $0x0
55060e:	ff 72 2c             	push   0x2c(%edx)
550611:	68 a5 00 00 00       	push   $0xa5
550616:	ff 75 b0             	push   -0x50(%ebp)
550619:	e8 72 15 ff ff       	call   0x541b90
55061e:	83 c4 1c             	add    $0x1c,%esp
550621:	e9 e7 00 00 00       	jmp    0x55070d
550626:	83 7b 38 00          	cmpl   $0x0,0x38(%ebx)
55062a:	0f 85 dd 00 00 00    	jne    0x55070d
550630:	a8 40                	test   $0x40,%al
550632:	0f 85 c2 00 00 00    	jne    0x5506fa
550638:	f6 45 d0 20          	testb  $0x20,-0x30(%ebp)
55063c:	0f 85 b8 00 00 00    	jne    0x5506fa
550642:	8b 7d ac             	mov    -0x54(%ebp),%edi
550645:	b9 60 00 00 00       	mov    $0x60,%ecx
55064a:	80 7f 2e 00          	cmpb   $0x0,0x2e(%edi)
55064e:	74 0b                	je     0x55065b
550650:	8b 42 2c             	mov    0x2c(%edx),%eax
550653:	b9 61 00 00 00       	mov    $0x61,%ecx
550658:	89 47 14             	mov    %eax,0x14(%edi)
55065b:	51                   	push   %ecx
55065c:	53                   	push   %ebx
55065d:	56                   	push   %esi
55065e:	ff 72 2c             	push   0x2c(%edx)
550661:	ff 75 dc             	push   -0x24(%ebp)
550664:	e8 e7 12 fe ff       	call   0x531950
550669:	83 c4 14             	add    $0x14,%esp
55066c:	80 7f 2e 00          	cmpb   $0x0,0x2e(%edi)
550670:	75 71                	jne    0x5506e3
550672:	66 83 7b 2a 40       	cmpw   $0x40,0x2a(%ebx)
550677:	7d 6a                	jge    0x5506e3
550679:	f6 43 24 e0          	testb  $0xe0,0x24(%ebx)
55067d:	75 64                	jne    0x5506e3
55067f:	8b 45 cc             	mov    -0x34(%ebp),%eax
550682:	33 ff                	xor    %edi,%edi
550684:	8b 50 38             	mov    0x38(%eax),%edx
550687:	8b ca                	mov    %edx,%ecx
550689:	8b 40 3c             	mov    0x3c(%eax),%eax
55068c:	0b c8                	or     %eax,%ecx
55068e:	74 0d                	je     0x55069d
550690:	0f ac c2 01          	shrd   $0x1,%eax,%edx
550694:	47                   	inc    %edi
550695:	d1 e8                	shr    $1,%eax
550697:	8b ca                	mov    %edx,%ecx
550699:	0b c8                	or     %eax,%ecx
55069b:	75 f3                	jne    0x550690
55069d:	8b 4d b0             	mov    -0x50(%ebp),%ecx
5506a0:	8b 01                	mov    (%ecx),%eax
5506a2:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5506a6:	74 0e                	je     0x5506b6
5506a8:	57                   	push   %edi
5506a9:	6a fd                	push   $0xfffffffd
5506ab:	50                   	push   %eax
5506ac:	e8 ff 35 fb ff       	call   0x503cb0
5506b1:	83 c4 0c             	add    $0xc,%esp
5506b4:	eb 2d                	jmp    0x5506e3
5506b6:	8b 41 6c             	mov    0x6c(%ecx),%eax
5506b9:	8b 55 b0             	mov    -0x50(%ebp),%edx
5506bc:	48                   	dec    %eax
5506bd:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5506c0:	8b 42 68             	mov    0x68(%edx),%eax
5506c3:	80 7c 88 01 00       	cmpb   $0x0,0x1(%eax,%ecx,4)
5506c8:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5506cb:	74 0f                	je     0x5506dc
5506cd:	6a fd                	push   $0xfffffffd
5506cf:	57                   	push   %edi
5506d0:	50                   	push   %eax
5506d1:	52                   	push   %edx
5506d2:	e8 69 95 00 00       	call   0x559c40
5506d7:	83 c4 10             	add    $0x10,%esp
5506da:	eb 07                	jmp    0x5506e3
5506dc:	89 78 10             	mov    %edi,0x10(%eax)
5506df:	c6 40 01 fd          	movb   $0xfd,0x1(%eax)
5506e3:	8a 45 cb             	mov    -0x35(%ebp),%al
5506e6:	0f b6 c0             	movzbl %al,%eax
5506e9:	50                   	push   %eax
5506ea:	ff 75 b0             	push   -0x50(%ebp)
5506ed:	e8 3e 19 ff ff       	call   0x542030
5506f2:	8b 7d a4             	mov    -0x5c(%ebp),%edi
5506f5:	83 c4 08             	add    $0x8,%esp
5506f8:	eb 13                	jmp    0x55070d
5506fa:	ff 33                	push   (%ebx)
5506fc:	6a 00                	push   $0x0
5506fe:	ff 73 1c             	push   0x1c(%ebx)
550701:	56                   	push   %esi
550702:	ff 75 dc             	push   -0x24(%ebp)
550705:	e8 c6 d7 fe ff       	call   0x53ded0
55070a:	83 c4 14             	add    $0x14,%esp
55070d:	f7 47 24 00 02 00 00 	testl  $0x200,0x24(%edi)
550714:	74 33                	je     0x550749
550716:	f6 43 24 80          	testb  $0x80,0x24(%ebx)
55071a:	ba 60 00 00 00       	mov    $0x60,%edx
55071f:	8b 7f 20             	mov    0x20(%edi),%edi
550722:	0f 84 4c 01 00 00    	je     0x550874
550728:	8b 47 38             	mov    0x38(%edi),%eax
55072b:	24 03                	and    $0x3,%al
55072d:	3c 02                	cmp    $0x2,%al
55072f:	8b 45 d0             	mov    -0x30(%ebp),%eax
550732:	0f 85 3f 01 00 00    	jne    0x550877
550738:	a8 20                	test   $0x20,%al
55073a:	0f 84 37 01 00 00    	je     0x550877
550740:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
550743:	8b 41 bc             	mov    -0x44(%ecx),%eax
550746:	89 41 c0             	mov    %eax,-0x40(%ecx)
550749:	8b 7d dc             	mov    -0x24(%ebp),%edi
55074c:	8b 5d ac             	mov    -0x54(%ebp),%ebx
55074f:	85 f6                	test   %esi,%esi
550751:	78 2e                	js     0x550781
550753:	8b 47 74             	mov    0x74(%edi),%eax
550756:	8b d7                	mov    %edi,%edx
550758:	85 c0                	test   %eax,%eax
55075a:	8b ce                	mov    %esi,%ecx
55075c:	0f 45 d0             	cmovne %eax,%edx
55075f:	b8 01 00 00 00       	mov    $0x1,%eax
550764:	d3 e0                	shl    %cl,%eax
550766:	8b 7a 54             	mov    0x54(%edx),%edi
550769:	85 c7                	test   %eax,%edi
55076b:	75 14                	jne    0x550781
55076d:	0f ab f7             	bts    %esi,%edi
550770:	89 7a 54             	mov    %edi,0x54(%edx)
550773:	83 fe 01             	cmp    $0x1,%esi
550776:	75 09                	jne    0x550781
550778:	52                   	push   %edx
550779:	e8 12 15 fe ff       	call   0x531c90
55077e:	83 c4 04             	add    $0x4,%esp
550781:	8b 7d d4             	mov    -0x2c(%ebp),%edi
550784:	8b 55 d8             	mov    -0x28(%ebp),%edx
550787:	83 c7 58             	add    $0x58,%edi
55078a:	83 6d b4 01          	subl   $0x1,-0x4c(%ebp)
55078e:	89 7d d4             	mov    %edi,-0x2c(%ebp)
550791:	0f 85 09 fe ff ff    	jne    0x5505a0
550797:	8b 4d c0             	mov    -0x40(%ebp),%ecx
55079a:	8b 45 b0             	mov    -0x50(%ebp),%eax
55079d:	8b 75 c4             	mov    -0x3c(%ebp),%esi
5507a0:	8b 40 6c             	mov    0x6c(%eax),%eax
5507a3:	89 43 38             	mov    %eax,0x38(%ebx)
5507a6:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
5507aa:	0f 85 57 fb ff ff    	jne    0x550307
5507b0:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
5507b7:	85 c9                	test   %ecx,%ecx
5507b9:	0f 8e a2 00 00 00    	jle    0x550861
5507bf:	8d bb 24 03 00 00    	lea    0x324(%ebx),%edi
5507c5:	66 66 66 0f 1f 84 00 	data16 data16 nopw 0x0(%eax,%eax,1)
5507cc:	00 00 00 00
5507d0:	8b 47 14             	mov    0x14(%edi),%eax
5507d3:	f7 40 24 00 40 00 00 	testl  $0x4000,0x24(%eax)
5507da:	74 33                	je     0x55080f
5507dc:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5507df:	8d 47 cc             	lea    -0x34(%edi),%eax
5507e2:	50                   	push   %eax
5507e3:	0f b6 07             	movzbl (%edi),%eax
5507e6:	ff 75 b8             	push   -0x48(%ebp)
5507e9:	ff 75 bc             	push   -0x44(%ebp)
5507ec:	8d 04 c0             	lea    (%eax,%eax,8),%eax
5507ef:	8d 40 01             	lea    0x1(%eax),%eax
5507f2:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
5507f5:	50                   	push   %eax
5507f6:	8d 43 50             	lea    0x50(%ebx),%eax
5507f9:	50                   	push   %eax
5507fa:	ff 75 dc             	push   -0x24(%ebp)
5507fd:	e8 5e af fa ff       	call   0x4fb760
550802:	83 c4 18             	add    $0x18,%esp
550805:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
550809:	0f 85 f8 fa ff ff    	jne    0x550307
55080f:	ff 75 d0             	push   -0x30(%ebp)
550812:	8d 77 cc             	lea    -0x34(%edi),%esi