5527a2:	8b 02                	mov    (%edx),%eax
5527a4:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5527a8:	74 07                	je     0x5527b1
5527aa:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
5527af:	eb 09                	jmp    0x5527ba
5527b1:	8b 42 68             	mov    0x68(%edx),%eax
5527b4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5527b7:	8d 04 88             	lea    (%eax,%ecx,4),%eax
5527ba:	8b 40 08             	mov    0x8(%eax),%eax
5527bd:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
5527c3:	8b 95 40 ff ff ff    	mov    -0xc0(%ebp),%edx
5527c9:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
5527cf:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
5527d5:	40                   	inc    %eax
5527d6:	89 85 0c ff ff ff    	mov    %eax,-0xf4(%ebp)
5527dc:	3b 41 0c             	cmp    0xc(%ecx),%eax
5527df:	0f 8c 3b fc ff ff    	jl     0x552420
5527e5:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
5527eb:	8b 8b d4 00 00 00    	mov    0xd4(%ebx),%ecx
5527f1:	85 c9                	test   %ecx,%ecx
5527f3:	75 04                	jne    0x5527f9
5527f5:	33 c0                	xor    %eax,%eax
5527f7:	eb 26                	jmp    0x55281f
5527f9:	8b 53 08             	mov    0x8(%ebx),%edx
5527fc:	85 c9                	test   %ecx,%ecx
5527fe:	79 04                	jns    0x552804
552800:	8b 4a 6c             	mov    0x6c(%edx),%ecx
552803:	49                   	dec    %ecx
552804:	8b 02                	mov    (%edx),%eax
552806:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
55280a:	74 07                	je     0x552813
55280c:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
552811:	eb 09                	jmp    0x55281c
552813:	8b 42 68             	mov    0x68(%edx),%eax
552816:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
552819:	8d 04 88             	lea    (%eax,%ecx,4),%eax
55281c:	8b 40 08             	mov    0x8(%eax),%eax
55281f:	89 83 d4 00 00 00    	mov    %eax,0xd4(%ebx)
552825:	8b 85 24 ff ff ff    	mov    -0xdc(%ebp),%eax
55282b:	89 46 40             	mov    %eax,0x40(%esi)
55282e:	85 c0                	test   %eax,%eax
552830:	74 09                	je     0x55283b
552832:	8b 85 20 ff ff ff    	mov    -0xe0(%ebp),%eax
552838:	89 46 08             	mov    %eax,0x8(%esi)
55283b:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
552841:	8b 9d f4 fe ff ff    	mov    -0x10c(%ebp),%ebx
552847:	85 c0                	test   %eax,%eax
552849:	74 11                	je     0x55285c
55284b:	50                   	push   %eax
55284c:	53                   	push   %ebx
55284d:	c7 40 0c 00 00 00 00 	movl   $0x0,0xc(%eax)
552854:	e8 57 3f fd ff       	call   0x5267b0
552859:	83 c4 08             	add    $0x8,%esp
55285c:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
552862:	8b 57 6c             	mov    0x6c(%edi),%edx
552865:	85 c9                	test   %ecx,%ecx
552867:	79 03                	jns    0x55286c
552869:	8d 4a ff             	lea    -0x1(%edx),%ecx
55286c:	8b 07                	mov    (%edi),%eax
55286e:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
552872:	74 07                	je     0x55287b
552874:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
552879:	eb 09                	jmp    0x552884
55287b:	8b 47 68             	mov    0x68(%edi),%eax
55287e:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
552881:	8d 04 88             	lea    (%eax,%ecx,4),%eax
552884:	89 50 04             	mov    %edx,0x4(%eax)
552887:	8b 4f 6c             	mov    0x6c(%edi),%ecx
55288a:	8b 56 0c             	mov    0xc(%esi),%edx
55288d:	39 4f 70             	cmp    %ecx,0x70(%edi)
552890:	7f 12                	jg     0x5528a4
552892:	6a 00                	push   $0x0
552894:	52                   	push   %edx
552895:	6a 00                	push   $0x0
552897:	6a 0b                	push   $0xb
552899:	57                   	push   %edi
55289a:	e8 61 3c fb ff       	call   0x506500
55289f:	83 c4 14             	add    $0x14,%esp
5528a2:	eb 35                	jmp    0x5528d9
5528a4:	8b b5 2c ff ff ff    	mov    -0xd4(%ebp),%esi
5528aa:	8d 41 01             	lea    0x1(%ecx),%eax
5528ad:	89 47 6c             	mov    %eax,0x6c(%edi)
5528b0:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5528b3:	8b 47 68             	mov    0x68(%edi),%eax
5528b6:	c7 04 88 0b 00 00 00 	movl   $0xb,(%eax,%ecx,4)
5528bd:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
5528c4:	00
5528c5:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5528c9:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5528d0:	00
5528d1:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5528d8:	00
5528d9:	8b 4f 0c             	mov    0xc(%edi),%ecx
5528dc:	8b 95 48 ff ff ff    	mov    -0xb8(%ebp),%edx
5528e2:	f7 d2                	not    %edx
5528e4:	8b 41 3c             	mov    0x3c(%ecx),%eax
5528e7:	03 41 38             	add    0x38(%ecx),%eax
5528ea:	79 0d                	jns    0x5528f9
5528ec:	52                   	push   %edx
5528ed:	57                   	push   %edi
5528ee:	51                   	push   %ecx
5528ef:	e8 ac 0e fc ff       	call   0x5137a0
5528f4:	83 c4 0c             	add    $0xc,%esp
5528f7:	eb 09                	jmp    0x552902
5528f9:	8b 49 40             	mov    0x40(%ecx),%ecx
5528fc:	8b 47 6c             	mov    0x6c(%edi),%eax
5528ff:	89 04 91             	mov    %eax,(%ecx,%edx,4)
552902:	8b 85 1c ff ff ff    	mov    -0xe4(%ebp),%eax
552908:	80 78 2c 01          	cmpb   $0x1,0x2c(%eax)
55290c:	76 64                	jbe    0x552972
55290e:	8b 8d 14 ff ff ff    	mov    -0xec(%ebp),%ecx
552914:	85 c9                	test   %ecx,%ecx
552916:	74 5a                	je     0x552972
552918:	85 db                	test   %ebx,%ebx
55291a:	74 4d                	je     0x552969
55291c:	83 bb f8 01 00 00 00 	cmpl   $0x0,0x1f8(%ebx)
552923:	74 0c                	je     0x552931
552925:	51                   	push   %ecx
552926:	53                   	push   %ebx
552927:	e8 44 6b fb ff       	call   0x509470
55292c:	83 c4 08             	add    $0x8,%esp
55292f:	eb 41                	jmp    0x552972
552931:	3b 8b 4c 01 00 00    	cmp    0x14c(%ebx),%ecx
552937:	73 30                	jae    0x552969
552939:	3b 8b 44 01 00 00    	cmp    0x144(%ebx),%ecx
55293f:	72 10                	jb     0x552951
552941:	8b 83 40 01 00 00    	mov    0x140(%ebx),%eax
552947:	89 01                	mov    %eax,(%ecx)
552949:	89 8b 40 01 00 00    	mov    %ecx,0x140(%ebx)
55294f:	eb 21                	jmp    0x552972
552951:	3b 8b 48 01 00 00    	cmp    0x148(%ebx),%ecx
552957:	72 10                	jb     0x552969
552959:	8b 83 38 01 00 00    	mov    0x138(%ebx),%eax
55295f:	89 01                	mov    %eax,(%ecx)
552961:	89 8b 38 01 00 00    	mov    %ecx,0x138(%ebx)
552967:	eb 09                	jmp    0x552972
552969:	51                   	push   %ecx
55296a:	e8 21 84 f9 ff       	call   0x4ead90
55296f:	83 c4 04             	add    $0x4,%esp
552972:	83 bd 28 ff ff ff 00 	cmpl   $0x0,-0xd8(%ebp)
552979:	0f 85 99 e2 ff ff    	jne    0x550c18
55297f:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
552985:	56                   	push   %esi
552986:	e8 75 b5 fa ff       	call   0x4fdf00
55298b:	83 c4 08             	add    $0x8,%esp
55298e:	e9 85 e2 ff ff       	jmp    0x550c18
552993:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
552999:	f6 40 28 20          	testb  $0x20,0x28(%eax)
55299d:	74 09                	je     0x5529a8
55299f:	c6 46 35 ad          	movb   $0xad,0x35(%esi)
5529a3:	e9 70 e2 ff ff       	jmp    0x550c18
5529a8:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
5529ae:	ff 75 98             	push   -0x68(%ebp)
5529b1:	8a 81 74 31 6b 00    	mov    0x6b3174(%ecx),%al
5529b7:	88 46 35             	mov    %al,0x35(%esi)
5529ba:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
5529c0:	50                   	push   %eax
5529c1:	89 46 38             	mov    %eax,0x38(%esi)
5529c4:	0f b6 81 78 31 6b 00 	movzbl 0x6b3178(%ecx),%eax
5529cb:	50                   	push   %eax
5529cc:	57                   	push   %edi
5529cd:	e8 0e f1 fe ff       	call   0x541ae0
5529d2:	83 c4 10             	add    $0x10,%esp
5529d5:	c6 46 37 01          	movb   $0x1,0x37(%esi)
5529d9:	40                   	inc    %eax
5529da:	89 46 3c             	mov    %eax,0x3c(%esi)
5529dd:	e9 36 e2 ff ff       	jmp    0x550c18
5529e2:	8b 8d 18 ff ff ff    	mov    -0xe8(%ebp),%ecx
5529e8:	e9 2d e2 ff ff       	jmp    0x550c1a
5529ed:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
5529f3:	8b 0b                	mov    (%ebx),%ecx
5529f5:	89 8d 08 ff ff ff    	mov    %ecx,-0xf8(%ebp)
5529fb:	f6 40 24 08          	testb  $0x8,0x24(%eax)
5529ff:	74 0a                	je     0x552a0b
552a01:	f6 41 04 01          	testb  $0x1,0x4(%ecx)
552a05:	0f 84 71 01 00 00    	je     0x552b7c
552a0b:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
552a11:	83 f8 01             	cmp    $0x1,%eax
552a14:	75 5e                	jne    0x552a74
552a16:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
552a1c:	0f 57 c0             	xorps  %xmm0,%xmm0
552a1f:	66 0f d6 45 88       	movq   %xmm0,-0x78(%ebp)
552a24:	0f 11 85 78 ff ff ff 	movups %xmm0,-0x88(%ebp)
552a2b:	c7 85 7c ff ff ff 80 	movl   $0x500c80,-0x84(%ebp)
552a32:	0c 50 00
552a35:	8b 40 04             	mov    0x4(%eax),%eax
552a38:	89 45 98             	mov    %eax,-0x68(%ebp)
552a3b:	8b 85 18 ff ff ff    	mov    -0xe8(%ebp),%eax
552a41:	89 45 94             	mov    %eax,-0x6c(%ebp)
552a44:	8d 45 94             	lea    -0x6c(%ebp),%eax
552a47:	89 45 90             	mov    %eax,-0x70(%ebp)
552a4a:	85 c9                	test   %ecx,%ecx
552a4c:	74 10                	je     0x552a5e
552a4e:	51                   	push   %ecx
552a4f:	8d 85 78 ff ff ff    	lea    -0x88(%ebp),%eax
552a55:	50                   	push   %eax
552a56:	e8 55 d5 00 00       	call   0x55ffb0
552a5b:	83 c4 08             	add    $0x8,%esp
552a5e:	66 39 75 8c          	cmp    %si,-0x74(%ebp)
552a62:	74 15                	je     0x552a79
552a64:	b8 02 00 00 00       	mov    $0x2,%eax
552a69:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
552a6f:	e9 0e 01 00 00       	jmp    0x552b82
552a74:	83 f8 03             	cmp    $0x3,%eax
552a77:	7d 2a                	jge    0x552aa3
552a79:	0f b7 53 0a          	movzwl 0xa(%ebx),%edx
552a7d:	f7 c2 00 10 00 00    	test   $0x1000,%edx
552a83:	74 1e                	je     0x552aa3
552a85:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
552a8b:	85 c0                	test   %eax,%eax
552a8d:	0f 85 ef 00 00 00    	jne    0x552b82
552a93:	b8 03 00 00 00       	mov    $0x3,%eax
552a98:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
552a9e:	e9 df 00 00 00       	jmp    0x552b82
552aa3:	f7 c2 00 02 00 00    	test   $0x200,%edx
552aa9:	0f 84 85 00 00 00    	je     0x552b34
552aaf:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
552ab5:	8b 40 2c             	mov    0x2c(%eax),%eax
552ab8:	85 c0                	test   %eax,%eax
552aba:	74 78                	je     0x552b34
552abc:	8b 77 6c             	mov    0x6c(%edi),%esi
552abf:	8b d0                	mov    %eax,%edx
552ac1:	83 e0 01             	and    $0x1,%eax
552ac4:	d1 ea                	shr    $1,%edx
552ac6:	89 95 dc fe ff ff    	mov    %edx,-0x124(%ebp)
552acc:	8d 04 45 12 00 00 00 	lea    0x12(,%eax,2),%eax
552ad3:	89 85 e4 fe ff ff    	mov    %eax,-0x11c(%ebp)
552ad9:	39 77 70             	cmp    %esi,0x70(%edi)
552adc:	7f 13                	jg     0x552af1
552ade:	6a 00                	push   $0x0
552ae0:	6a 00                	push   $0x0
552ae2:	52                   	push   %edx
552ae3:	50                   	push   %eax
552ae4:	57                   	push   %edi
552ae5:	e8 16 3a fb ff       	call   0x506500
552aea:	83 c4 14             	add    $0x14,%esp
552aed:	8b f0                	mov    %eax,%esi
552aef:	eb 43                	jmp    0x552b34
552af1:	8b 95 e4 fe ff ff    	mov    -0x11c(%ebp),%edx
552af7:	8d 46 01             	lea    0x1(%esi),%eax
552afa:	89 47 6c             	mov    %eax,0x6c(%edi)
552afd:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
552b00:	8b 47 68             	mov    0x68(%edi),%eax
552b03:	88 14 88             	mov    %dl,(%eax,%ecx,4)
552b06:	33 d2                	xor    %edx,%edx
552b08:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)
552b0d:	8b 95 dc fe ff ff    	mov    -0x124(%ebp),%edx
552b13:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
552b17:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
552b1e:	00
552b1f:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
552b26:	00
552b27:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
552b2e:	00
552b2f:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
552b34:	6a 10                	push   $0x10
552b36:	ff b5 e8 fe ff ff    	push   -0x118(%ebp)
552b3c:	ff b5 08 ff ff ff    	push   -0xf8(%ebp)
552b42:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
552b48:	e8 63 3f fd ff       	call   0x526ab0
552b4d:	83 c4 10             	add    $0x10,%esp
552b50:	85 f6                	test   %esi,%esi
552b52:	74 23                	je     0x552b77
552b54:	8b 57 6c             	mov    0x6c(%edi),%edx
552b57:	79 03                	jns    0x552b5c
552b59:	8d 72 ff             	lea    -0x1(%edx),%esi
552b5c:	8b 07                	mov    (%edi),%eax
552b5e:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
552b62:	74 07                	je     0x552b6b
552b64:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
552b69:	eb 09                	jmp    0x552b74
552b6b:	8b 47 68             	mov    0x68(%edi),%eax
552b6e:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
552b71:	8d 04 88             	lea    (%eax,%ecx,4),%eax
552b74:	89 50 08             	mov    %edx,0x8(%eax)
552b77:	66 83 4b 0a 04       	orw    $0x4,0xa(%ebx)
552b7c:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
552b82:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
552b88:	83 c3 30             	add    $0x30,%ebx
552b8b:	4a                   	dec    %edx
552b8c:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
552b92:	85 d2                	test   %edx,%edx
552b94:	0f 8f b6 e0 ff ff    	jg     0x550c50
552b9a:	8b b5 f0 fe ff ff    	mov    -0x110(%ebp),%esi
552ba0:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
552ba6:	85 c0                	test   %eax,%eax
552ba8:	0f 8f 82 e0 ff ff    	jg     0x550c30
552bae:	8b 5e 0c             	mov    0xc(%esi),%ebx
552bb1:	8b 56 14             	mov    0x14(%esi),%edx
552bb4:	89 95 38 ff ff ff    	mov    %edx,-0xc8(%ebp)
552bba:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
552bc0:	85 db                	test   %ebx,%ebx
552bc2:	0f 8e 7a 01 00 00    	jle    0x552d42
552bc8:	8b bd f8 fe ff ff    	mov    -0x108(%ebp),%edi
552bce:	be 0b 00 00 00       	mov    $0xb,%esi
552bd3:	f6 42 0a 06          	testb  $0x6,0xa(%edx)
552bd7:	0f 85 41 01 00 00    	jne    0x552d1e
552bdd:	0f b7 42 0c          	movzwl 0xc(%edx),%eax
552be1:	a8 82                	test   $0x82,%al
552be3:	0f 95 c1             	setne  %cl
552be6:	66 0f a3 f0          	bt     %si,%ax
552bea:	0f 92 c0             	setb   %al
552bed:	84 c8                	test   %cl,%al
552bef:	0f 84 29 01 00 00    	je     0x552d1e
552bf5:	8b 8d 40 ff ff ff    	mov    -0xc0(%ebp),%ecx
552bfb:	39 4a 14             	cmp    %ecx,0x14(%edx)
552bfe:	0f 85 1a 01 00 00    	jne    0x552d1e
552c04:	8b 85 ec fe ff ff    	mov    -0x114(%ebp),%eax
552c0a:	f6 40 24 08          	testb  $0x8,0x24(%eax)
552c0e:	0f 85 0a 01 00 00    	jne    0x552d1e
552c14:	8b 02                	mov    (%edx),%eax
552c16:	33 f6                	xor    %esi,%esi
552c18:	89 85 e4 fe ff ff    	mov    %eax,-0x11c(%ebp)
552c1e:	8b 42 1c             	mov    0x1c(%edx),%eax
552c21:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
552c27:	89 55 9c             	mov    %edx,-0x64(%ebp)
552c2a:	89 55 a0             	mov    %edx,-0x60(%ebp)
552c2d:	89 75 a8             	mov    %esi,-0x58(%ebp)
552c30:	66 c7 45 ac 00 01    	movw   $0x100,-0x54(%ebp)
552c36:	89 75 a4             	mov    %esi,-0x5c(%ebp)
552c39:	c7 45 b0 83 00 00 00 	movl   $0x83,-0x50(%ebp)
552c40:	89 75 b4             	mov    %esi,-0x4c(%ebp)
552c43:	89 4d b8             	mov    %ecx,-0x48(%ebp)
552c46:	c6 45 ae 01          	movb   $0x1,-0x52(%ebp)
552c4a:	83 f8 fe             	cmp    $0xfffffffe,%eax
552c4d:	74 4a                	je     0x552c99
552c4f:	66 89 45 e4          	mov    %ax,-0x1c(%ebp)
552c53:	8d 45 9c             	lea    -0x64(%ebp),%eax
552c56:	50                   	push   %eax
552c57:	e8 84 1c 01 00       	call   0x5648e0
552c5c:	8b d0                	mov    %eax,%edx
552c5e:	83 c4 04             	add    $0x4,%esp
552c61:	85 d2                	test   %edx,%edx
552c63:	74 34                	je     0x552c99
552c65:	8b 5a 20             	mov    0x20(%edx),%ebx
552c68:	8b cb                	mov    %ebx,%ecx
552c6a:	8b 42 24             	mov    0x24(%edx),%eax
552c6d:	23 4d 1c             	and    0x1c(%ebp),%ecx
552c70:	23 45 20             	and    0x20(%ebp),%eax
552c73:	0b c8                	or     %eax,%ecx
552c75:	75 10                	jne    0x552c87
552c77:	0b 5a 24             	or     0x24(%edx),%ebx
552c7a:	75 06                	jne    0x552c82
552c7c:	f6 42 0c 82          	testb  $0x82,0xc(%edx)
552c80:	75 19                	jne    0x552c9b
552c82:	85 f6                	test   %esi,%esi
552c84:	0f 44 f2             	cmove  %edx,%esi
552c87:	8d 45 9c             	lea    -0x64(%ebp),%eax
552c8a:	50                   	push   %eax
552c8b:	e8 50 1c 01 00       	call   0x5648e0