5515e6:	0f b7 42 1a          	movzwl 0x1a(%edx),%eax
5515ea:	0f b7 4a 18          	movzwl 0x18(%edx),%ecx
5515ee:	89 85 38 ff ff ff    	mov    %eax,-0xc8(%ebp)
5515f4:	0f b7 42 1c          	movzwl 0x1c(%edx),%eax
5515f8:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
5515fe:	33 c0                	xor    %eax,%eax
551600:	89 45 98             	mov    %eax,-0x68(%ebp)
551603:	88 85 4f ff ff ff    	mov    %al,-0xb1(%ebp)
551609:	88 85 03 ff ff ff    	mov    %al,-0xfd(%ebp)
55160f:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
551615:	8b 42 20             	mov    0x20(%edx),%eax
551618:	89 85 18 ff ff ff    	mov    %eax,-0xe8(%ebp)
55161e:	8b 46 08             	mov    0x8(%esi),%eax
551621:	89 85 28 ff ff ff    	mov    %eax,-0xd8(%ebp)
551627:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
55162d:	0f b7 d1             	movzwl %cx,%edx
551630:	89 8d 24 ff ff ff    	mov    %ecx,-0xdc(%ebp)
551636:	89 95 20 ff ff ff    	mov    %edx,-0xe0(%ebp)
55163c:	8b 48 24             	mov    0x24(%eax),%ecx
55163f:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
551645:	f6 c1 20             	test   $0x20,%cl
551648:	74 31                	je     0x55167b
55164a:	8b 40 30             	mov    0x30(%eax),%eax
55164d:	8b bd 44 ff ff ff    	mov    -0xbc(%ebp),%edi
551653:	8b 04 90             	mov    (%eax,%edx,4),%eax
551656:	89 85 10 ff ff ff    	mov    %eax,-0xf0(%ebp)
55165c:	8d 42 01             	lea    0x1(%edx),%eax
55165f:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
551665:	0f b7 47 1a          	movzwl 0x1a(%edi),%eax
551669:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
55166f:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
551675:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
55167b:	f6 c1 10             	test   $0x10,%cl
55167e:	0f 84 c8 00 00 00    	je     0x55174c
551684:	8b 40 30             	mov    0x30(%eax),%eax
551687:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
55168d:	8b 04 88             	mov    (%eax,%ecx,4),%eax
551690:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
551696:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
55169c:	0f b7 41 1c          	movzwl 0x1c(%ecx),%eax
5516a0:	8b 8d 54 ff ff ff    	mov    -0xac(%ebp),%ecx
5516a6:	3b c8                	cmp    %eax,%ecx
5516a8:	0f 46 c8             	cmovbe %eax,%ecx
5516ab:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
5516b1:	89 8d 54 ff ff ff    	mov    %ecx,-0xac(%ebp)
5516b7:	b9 00 01 00 00       	mov    $0x100,%ecx
5516bc:	66 85 48 0a          	test   %cx,0xa(%eax)
5516c0:	74 42                	je     0x551704
5516c2:	8b 43 2c             	mov    0x2c(%ebx),%eax
5516c5:	40                   	inc    %eax
5516c6:	50                   	push   %eax
5516c7:	6a 01                	push   $0x1
5516c9:	6a 45                	push   $0x45
5516cb:	89 43 2c             	mov    %eax,0x2c(%ebx)
5516ce:	57                   	push   %edi
5516cf:	89 46 2c             	mov    %eax,0x2c(%esi)
5516d2:	e8 09 04 ff ff       	call   0x541ae0
5516d7:	8b 47 6c             	mov    0x6c(%edi),%eax
5516da:	33 c9                	xor    %ecx,%ecx
5516dc:	d1 66 2c             	shll   $1,0x2c(%esi)
5516df:	83 c4 10             	add    $0x10,%esp
5516e2:	8b 95 20 ff ff ff    	mov    -0xe0(%ebp),%edx
5516e8:	89 46 30             	mov    %eax,0x30(%esi)
5516eb:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
5516f1:	8b 40 1c             	mov    0x1c(%eax),%eax
5516f4:	80 3c 02 01          	cmpb   $0x1,(%edx,%eax,1)
5516f8:	0f 94 c1             	sete   %cl
5516fb:	33 8d 30 ff ff ff    	xor    -0xd0(%ebp),%ecx
551701:	09 4e 2c             	or     %ecx,0x2c(%esi)
551704:	83 bd 10 ff ff ff 00 	cmpl   $0x0,-0xf0(%ebp)
55170b:	75 3f                	jne    0x55174c
55170d:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
551713:	8b 40 04             	mov    0x4(%eax),%eax
551716:	0f bf 0c 50          	movswl (%eax,%edx,2),%ecx
55171a:	89 8d 5c ff ff ff    	mov    %ecx,-0xa4(%ebp)
551720:	85 c9                	test   %ecx,%ecx
551722:	78 1c                	js     0x551740
551724:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
55172a:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
55172d:	8b 40 0c             	mov    0xc(%eax),%eax
551730:	8b 40 04             	mov    0x4(%eax),%eax
551733:	80 7c 88 0c 00       	cmpb   $0x0,0xc(%eax,%ecx,4)
551738:	74 0b                	je     0x551745
55173a:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
551740:	83 f9 fe             	cmp    $0xfffffffe,%ecx
551743:	75 07                	jne    0x55174c
551745:	c6 85 4f ff ff ff 01 	movb   $0x1,-0xb1(%ebp)
55174c:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
551752:	8b 40 24             	mov    0x24(%eax),%eax
551755:	a8 30                	test   $0x30,%al
551757:	75 30                	jne    0x551789
551759:	a9 00 00 08 00       	test   $0x80000,%eax
55175e:	74 29                	je     0x551789
551760:	ff 43 2c             	incl   0x2c(%ebx)
551763:	8b 43 2c             	mov    0x2c(%ebx),%eax
551766:	89 46 24             	mov    %eax,0x24(%esi)
551769:	ff 4b 38             	decl   0x38(%ebx)
55176c:	89 85 3c ff ff ff    	mov    %eax,-0xc4(%ebp)
551772:	8b 43 38             	mov    0x38(%ebx),%eax
551775:	c7 85 54 ff ff ff 01 	movl   $0x1,-0xac(%ebp)
55177c:	00 00 00
55177f:	c6 85 4f ff ff ff 01 	movb   $0x1,-0xb1(%ebp)
551786:	89 46 28             	mov    %eax,0x28(%esi)
551789:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
55178f:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
551795:	0f b7 40 32          	movzwl 0x32(%eax),%eax
551799:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
55179f:	66 3b c8             	cmp    %ax,%cx
5517a2:	73 29                	jae    0x5517cd
5517a4:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
5517aa:	33 c9                	xor    %ecx,%ecx
5517ac:	8b 40 1c             	mov    0x1c(%eax),%eax
5517af:	38 0c 02             	cmp    %cl,(%edx,%eax,1)
5517b2:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
5517b8:	0f 94 c1             	sete   %cl
5517bb:	3b d1                	cmp    %ecx,%edx
5517bd:	74 1d                	je     0x5517dc
5517bf:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
5517c5:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
5517cb:	eb 06                	jmp    0x5517d3
5517cd:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
5517d3:	85 d2                	test   %edx,%edx
5517d5:	74 54                	je     0x55182b
5517d7:	66 3b c1             	cmp    %cx,%ax
5517da:	75 4f                	jne    0x55182b
5517dc:	8b 8d 10 ff ff ff    	mov    -0xf0(%ebp),%ecx
5517e2:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
5517e8:	8b bd 34 ff ff ff    	mov    -0xcc(%ebp),%edi
5517ee:	89 8d 0c ff ff ff    	mov    %ecx,-0xf4(%ebp)
5517f4:	8a 8d 4f ff ff ff    	mov    -0xb1(%ebp),%cl
5517fa:	89 85 10 ff ff ff    	mov    %eax,-0xf0(%ebp)
551800:	8b 85 38 ff ff ff    	mov    -0xc8(%ebp),%eax
551806:	88 8d 03 ff ff ff    	mov    %cl,-0xfd(%ebp)
55180c:	0f b7 cf             	movzwl %di,%ecx
55180f:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
551815:	0f b6 c0             	movzbl %al,%eax
551818:	c6 85 4f ff ff ff 00 	movb   $0x0,-0xb1(%ebp)
55181f:	89 8d 38 ff ff ff    	mov    %ecx,-0xc8(%ebp)
551825:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
55182b:	8d 85 04 ff ff ff    	lea    -0xfc(%ebp),%eax
551831:	50                   	push   %eax
551832:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551838:	52                   	push   %edx
551839:	56                   	push   %esi
55183a:	53                   	push   %ebx
55183b:	e8 b0 78 fa ff       	call   0x4f90f0
551840:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
551846:	83 c4 14             	add    $0x14,%esp
551849:	89 85 14 ff ff ff    	mov    %eax,-0xec(%ebp)
55184f:	85 c9                	test   %ecx,%ecx
551851:	74 24                	je     0x551877
551853:	66 83 bd 34 ff ff ff 	cmpw   $0x0,-0xcc(%ebp)
55185a:	00
55185b:	74 1a                	je     0x551877
55185d:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
551863:	03 c1                	add    %ecx,%eax
551865:	50                   	push   %eax
551866:	ff b5 f4 fe ff ff    	push   -0x10c(%ebp)
55186c:	e8 3f fe fc ff       	call   0x5216b0
551871:	83 c4 08             	add    $0x8,%esp
551874:	89 45 98             	mov    %eax,-0x68(%ebp)
551877:	8b 95 3c ff ff ff    	mov    -0xc4(%ebp),%edx
55187d:	85 d2                	test   %edx,%edx
55187f:	74 0b                	je     0x55188c
551881:	8b 4e 28             	mov    0x28(%esi),%ecx
551884:	89 8d 54 ff ff ff    	mov    %ecx,-0xac(%ebp)
55188a:	eb 09                	jmp    0x551895
55188c:	8b 46 10             	mov    0x10(%esi),%eax
55188f:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
551895:	8b 85 10 ff ff ff    	mov    -0xf0(%ebp),%eax
55189b:	85 c0                	test   %eax,%eax
55189d:	74 10                	je     0x5518af
55189f:	f6 40 0c 28          	testb  $0x28,0xc(%eax)
5518a3:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%ebp)
5518aa:	00 00 00
5518ad:	74 0a                	je     0x5518b9
5518af:	c7 85 50 ff ff ff 01 	movl   $0x1,-0xb0(%ebp)
5518b6:	00 00 00
5518b9:	8b 8d 0c ff ff ff    	mov    -0xf4(%ebp),%ecx
5518bf:	85 c9                	test   %ecx,%ecx
5518c1:	74 10                	je     0x5518d3
5518c3:	f6 41 0c 28          	testb  $0x28,0xc(%ecx)
5518c7:	c7 85 58 ff ff ff 00 	movl   $0x0,-0xa8(%ebp)
5518ce:	00 00 00
5518d1:	74 0a                	je     0x5518dd
5518d3:	c7 85 58 ff ff ff 01 	movl   $0x1,-0xa8(%ebp)
5518da:	00 00 00
5518dd:	85 c0                	test   %eax,%eax
5518df:	75 64                	jne    0x551945
5518e1:	66 39 85 24 ff ff ff 	cmp    %ax,-0xdc(%ebp)
5518e8:	77 5b                	ja     0x551945
5518ea:	8b 8d 20 ff ff ff    	mov    -0xe0(%ebp),%ecx
5518f0:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
5518f6:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
5518fc:	80 bd 4f ff ff ff 00 	cmpb   $0x0,-0xb1(%ebp)
551903:	0f 84 32 01 00 00    	je     0x551a3b
551909:	c7 85 50 ff ff ff 00 	movl   $0x0,-0xb0(%ebp)
551910:	00 00 00
551913:	8b 85 14 ff ff ff    	mov    -0xec(%ebp),%eax
551919:	03 c1                	add    %ecx,%eax
55191b:	50                   	push   %eax
55191c:	6a 00                	push   $0x0
55191e:	6a 48                	push   $0x48
551920:	57                   	push   %edi
551921:	e8 ba 01 ff ff       	call   0x541ae0
551926:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
55192c:	83 c4 10             	add    $0x10,%esp
55192f:	40                   	inc    %eax
551930:	c7 85 24 ff ff ff 01 	movl   $0x1,-0xdc(%ebp)
551937:	00 00 00
55193a:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
551940:	e9 04 01 00 00       	jmp    0x551a49
551945:	8b 8d 20 ff ff ff    	mov    -0xe0(%ebp),%ecx
55194b:	c7 85 24 ff ff ff 01 	movl   $0x1,-0xdc(%ebp)
551952:	00 00 00
551955:	89 8d 48 ff ff ff    	mov    %ecx,-0xb8(%ebp)
55195b:	85 c0                	test   %eax,%eax
55195d:	74 9d                	je     0x5518fc
55195f:	8b 00                	mov    (%eax),%eax
551961:	8b bd 38 ff ff ff    	mov    -0xc8(%ebp),%edi
551967:	03 8d 14 ff ff ff    	add    -0xec(%ebp),%ecx
55196d:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
551973:	8b 50 10             	mov    0x10(%eax),%edx
551976:	0f b7 c7             	movzwl %di,%eax
551979:	50                   	push   %eax
55197a:	51                   	push   %ecx
55197b:	52                   	push   %edx
55197c:	53                   	push   %ebx
55197d:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
551983:	e8 38 86 fa ff       	call   0x4f9fc0
551988:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
55198e:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
551994:	56                   	push   %esi
551995:	57                   	push   %edi
551996:	e8 b5 f3 00 00       	call   0x560d50
55199b:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5519a1:	e8 ba 20 fd ff       	call   0x523a60
5519a6:	83 c4 20             	add    $0x20,%esp
5519a9:	85 c0                	test   %eax,%eax
5519ab:	74 17                	je     0x5519c4
5519ad:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
5519b3:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
5519b9:	6a 32                	push   $0x32
5519bb:	57                   	push   %edi
5519bc:	e8 1f 01 ff ff       	call   0x541ae0
5519c1:	83 c4 10             	add    $0x10,%esp
5519c4:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
5519ca:	85 c9                	test   %ecx,%ecx
5519cc:	74 21                	je     0x5519ef
5519ce:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
5519d4:	03 c1                	add    %ecx,%eax
5519d6:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
5519dc:	50                   	push   %eax
5519dd:	0f b7 c1             	movzwl %cx,%eax
5519e0:	50                   	push   %eax
5519e1:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5519e7:	e8 04 75 00 00       	call   0x558ef0
5519ec:	83 c4 0c             	add    $0xc,%esp
5519ef:	8b 8d 38 ff ff ff    	mov    -0xc8(%ebp),%ecx
5519f5:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5519fb:	0f b7 c1             	movzwl %cx,%eax
5519fe:	01 85 48 ff ff ff    	add    %eax,-0xb8(%ebp)
551a04:	e8 27 5b fd ff       	call   0x527530
551a09:	83 c4 04             	add    $0x4,%esp
551a0c:	85 c0                	test   %eax,%eax
551a0e:	75 18                	jne    0x551a28
551a10:	ff b5 10 ff ff ff    	push   -0xf0(%ebp)
551a16:	56                   	push   %esi
551a17:	e8 e4 c4 fa ff       	call   0x4fdf00
551a1c:	83 c4 08             	add    $0x8,%esp
551a1f:	c6 85 4f ff ff ff 00 	movb   $0x0,-0xb1(%ebp)
551a26:	eb 1b                	jmp    0x551a43
551a28:	c7 85 50 ff ff ff 01 	movl   $0x1,-0xb0(%ebp)
551a2f:	00 00 00
551a32:	c6 85 4f ff ff ff 00 	movb   $0x0,-0xb1(%ebp)
551a39:	eb 08                	jmp    0x551a43
551a3b:	85 d2                	test   %edx,%edx
551a3d:	0f 85 d0 fe ff ff    	jne    0x551913
551a43:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
551a49:	0f b6 8d 4f ff ff ff 	movzbl -0xb1(%ebp),%ecx
551a50:	ff b5 04 ff ff ff    	push   -0xfc(%ebp)
551a56:	2b c1                	sub    %ecx,%eax
551a58:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
551a5e:	50                   	push   %eax
551a5f:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551a65:	53                   	push   %ebx
551a66:	e8 95 7a fa ff       	call   0x4f9500
551a6b:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
551a71:	83 c4 10             	add    $0x10,%esp
551a74:	0f b7 41 2a          	movzwl 0x2a(%ecx),%eax
551a78:	66 85 c0             	test   %ax,%ax
551a7b:	74 0c                	je     0x551a89
551a7d:	39 85 48 ff ff ff    	cmp    %eax,-0xb8(%ebp)
551a83:	0f 84 d3 00 00 00    	je     0x551b5c
551a89:	f7 41 24 00 00 04 00 	testl  $0x40000,0x24(%ecx)
551a90:	74 11                	je     0x551aa3
551a92:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551a98:	6a 76                	push   $0x76
551a9a:	57                   	push   %edi
551a9b:	e8 e0 ff fe ff       	call   0x541a80
551aa0:	83 c4 0c             	add    $0xc,%esp
551aa3:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
551aa9:	85 c0                	test   %eax,%eax
551aab:	74 0e                	je     0x551abb
551aad:	50                   	push   %eax
551aae:	6a 01                	push   $0x1
551ab0:	6a 45                	push   $0x45
551ab2:	57                   	push   %edi
551ab3:	e8 28 00 ff ff       	call   0x541ae0
551ab8:	83 c4 10             	add    $0x10,%esp
551abb:	ff b5 48 ff ff ff    	push   -0xb8(%ebp)
551ac1:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
551ac7:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
551acd:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551ad3:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551ad9:	8d 04 41             	lea    (%ecx,%eax,2),%eax
551adc:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
551ae2:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551ae8:	0f b6 84 41 68 31 6b 	movzbl 0x6b3168(%ecx,%eax,2),%eax
551aef:	00
551af0:	50                   	push   %eax
551af1:	57                   	push   %edi
551af2:	e8 19 01 ff ff       	call   0x541c10
551af7:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
551afd:	83 c4 18             	add    $0x18,%esp
551b00:	85 c0                	test   %eax,%eax
551b02:	74 5e                	je     0x551b62
551b04:	8b 47 6c             	mov    0x6c(%edi),%eax
551b07:	83 c0 02             	add    $0x2,%eax
551b0a:	50                   	push   %eax
551b0b:	6a 00                	push   $0x0
551b0d:	6a 0b                	push   $0xb
551b0f:	57                   	push   %edi
551b10:	e8 cb ff fe ff       	call   0x541ae0
551b15:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
551b1b:	2b 85 50 ff ff ff    	sub    -0xb0(%ebp),%eax
551b21:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
551b27:	50                   	push   %eax
551b28:	ff b5 14 ff ff ff    	push   -0xec(%ebp)
551b2e:	b8 01 00 00 00       	mov    $0x1,%eax
551b33:	3b 85 48 ff ff ff    	cmp    -0xb8(%ebp),%eax
551b39:	ff b5 54 ff ff ff    	push   -0xac(%ebp)
551b3f:	1b c0                	sbb    %eax,%eax
551b41:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
551b47:	83 e0 04             	and    $0x4,%eax
551b4a:	0f b6 84 08 6a 31 6b 	movzbl 0x6b316a(%eax,%ecx,1),%eax
551b51:	00
551b52:	50                   	push   %eax
551b53:	57                   	push   %edi
551b54:	e8 b7 00 ff ff       	call   0x541c10