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
552c90:	8b d0                	mov    %eax,%edx
552c92:	83 c4 04             	add    $0x4,%esp
552c95:	85 d2                	test   %edx,%edx
552c97:	75 cc                	jne    0x552c65
552c99:	8b d6                	mov    %esi,%edx
552c9b:	85 d2                	test   %edx,%edx
552c9d:	74 6e                	je     0x552d0d
552c9f:	f6 42 0a 04          	testb  $0x4,0xa(%edx)
552ca3:	75 68                	jne    0x552d0d
552ca5:	f6 42 0c 01          	testb  $0x1,0xc(%edx)
552ca9:	74 16                	je     0x552cc1
552cab:	8b 02                	mov    (%edx),%eax
552cad:	f7 40 04 00 08 00 00 	testl  $0x800,0x4(%eax)
552cb4:	74 0b                	je     0x552cc1
552cb6:	8b 40 14             	mov    0x14(%eax),%eax
552cb9:	8b 40 1c             	mov    0x1c(%eax),%eax
552cbc:	83 38 01             	cmpl   $0x1,(%eax)
552cbf:	7f 4c                	jg     0x552d0d
552cc1:	8b 02                	mov    (%edx),%eax
552cc3:	6a 10                	push   $0x10
552cc5:	ff b5 e8 fe ff ff    	push   -0x118(%ebp)
552ccb:	0f 10 00             	movups (%eax),%xmm0
552cce:	0f 11 85 60 ff ff ff 	movups %xmm0,-0xa0(%ebp)
552cd5:	0f 10 40 10          	movups 0x10(%eax),%xmm0
552cd9:	0f 11 85 70 ff ff ff 	movups %xmm0,-0x90(%ebp)
552ce0:	0f 10 40 20          	movups 0x20(%eax),%xmm0
552ce4:	0f 11 45 80          	movups %xmm0,-0x80(%ebp)
552ce8:	8b 40 30             	mov    0x30(%eax),%eax
552ceb:	89 45 90             	mov    %eax,-0x70(%ebp)
552cee:	8b 85 e4 fe ff ff    	mov    -0x11c(%ebp),%eax
552cf4:	8b 40 0c             	mov    0xc(%eax),%eax
552cf7:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
552cfd:	8d 85 60 ff ff ff    	lea    -0xa0(%ebp),%eax
552d03:	50                   	push   %eax
552d04:	57                   	push   %edi
552d05:	e8 a6 3d fd ff       	call   0x526ab0
552d0a:	83 c4 10             	add    $0x10,%esp
552d0d:	8b 9d 50 ff ff ff    	mov    -0xb0(%ebp),%ebx
552d13:	be 0b 00 00 00       	mov    $0xb,%esi
552d18:	8b 95 38 ff ff ff    	mov    -0xc8(%ebp),%edx
552d1e:	4b                   	dec    %ebx
552d1f:	83 c2 30             	add    $0x30,%edx
552d22:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
552d28:	89 95 38 ff ff ff    	mov    %edx,-0xc8(%ebp)
552d2e:	85 db                	test   %ebx,%ebx
552d30:	0f 8f 9d fe ff ff    	jg     0x552bd3
552d36:	8b bd fc fe ff ff    	mov    -0x104(%ebp),%edi
552d3c:	8b b5 f0 fe ff ff    	mov    -0x110(%ebp),%esi
552d42:	8b 9d 2c ff ff ff    	mov    -0xd4(%ebp),%ebx
552d48:	8b 13                	mov    (%ebx),%edx
552d4a:	85 d2                	test   %edx,%edx
552d4c:	0f 84 a1 00 00 00    	je     0x552df3
552d52:	8b 47 6c             	mov    0x6c(%edi),%eax
552d55:	89 43 1c             	mov    %eax,0x1c(%ebx)
552d58:	8b 4f 6c             	mov    0x6c(%edi),%ecx
552d5b:	39 4f 70             	cmp    %ecx,0x70(%edi)
552d5e:	7f 12                	jg     0x552d72
552d60:	6a 00                	push   $0x0
552d62:	52                   	push   %edx
552d63:	6a 01                	push   $0x1
552d65:	6a 45                	push   $0x45
552d67:	57                   	push   %edi
552d68:	e8 93 37 fb ff       	call   0x506500
552d6d:	83 c4 14             	add    $0x14,%esp
552d70:	eb 2f                	jmp    0x552da1
552d72:	8d 41 01             	lea    0x1(%ecx),%eax
552d75:	89 47 6c             	mov    %eax,0x6c(%edi)
552d78:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
552d7b:	8b 47 68             	mov    0x68(%edi),%eax
552d7e:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
552d85:	c7 44 88 04 01 00 00 	movl   $0x1,0x4(%eax,%ecx,4)
552d8c:	00
552d8d:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
552d91:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
552d98:	00
552d99:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
552da0:	00
552da1:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
552da7:	33 ff                	xor    %edi,%edi
552da9:	8b 76 14             	mov    0x14(%esi),%esi
552dac:	39 7a 0c             	cmp    %edi,0xc(%edx)
552daf:	7e 42                	jle    0x552df3
552db1:	f6 46 0a 06          	testb  $0x6,0xa(%esi)
552db5:	75 33                	jne    0x552dea
552db7:	8b 4e 28             	mov    0x28(%esi),%ecx
552dba:	8b 46 2c             	mov    0x2c(%esi),%eax
552dbd:	23 4b 50             	and    0x50(%ebx),%ecx
552dc0:	23 43 54             	and    0x54(%ebx),%eax
552dc3:	0b c8                	or     %eax,%ecx
552dc5:	75 23                	jne    0x552dea
552dc7:	6a 10                	push   $0x10
552dc9:	ff b5 e8 fe ff ff    	push   -0x118(%ebp)
552dcf:	ff 36                	push   (%esi)
552dd1:	ff b5 f8 fe ff ff    	push   -0x108(%ebp)
552dd7:	e8 d4 3c fd ff       	call   0x526ab0
552ddc:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
552de2:	83 c4 10             	add    $0x10,%esp
552de5:	66 83 4e 0a 04       	orw    $0x4,0xa(%esi)
552dea:	47                   	inc    %edi
552deb:	83 c6 30             	add    $0x30,%esi
552dee:	3b 7a 0c             	cmp    0xc(%edx),%edi
552df1:	7c be                	jl     0x552db1
552df3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
552df6:	8b 43 50             	mov    0x50(%ebx),%eax
552df9:	33 cd                	xor    %ebp,%ecx
552dfb:	8b 53 54             	mov    0x54(%ebx),%edx
552dfe:	5f                   	pop    %edi
552dff:	5e                   	pop    %esi
552e00:	5b                   	pop    %ebx
552e01:	e8 d4 e6 08 00       	call   0x5e14da
552e06:	8b e5                	mov    %ebp,%esp
552e08:	5d                   	pop    %ebp
552e09:	c3                   	ret
552e0a:	cc                   	int3
552e0b:	cc                   	int3
552e0c:	cc                   	int3
552e0d:	cc                   	int3
552e0e:	cc                   	int3
552e0f:	cc                   	int3
552e10:	55                   	push   %ebp
552e11:	8b ec                	mov    %esp,%ebp
552e13:	83 ec 28             	sub    $0x28,%esp
552e16:	53                   	push   %ebx
552e17:	8b 5d 08             	mov    0x8(%ebp),%ebx
552e1a:	56                   	push   %esi
552e1b:	57                   	push   %edi
552e1c:	8b 03                	mov    (%ebx),%eax
552e1e:	0f b6 53 2c          	movzbl 0x2c(%ebx),%edx
552e22:	8b 4b 04             	mov    0x4(%ebx),%ecx
552e25:	83 ea 01             	sub    $0x1,%edx
552e28:	89 45 f0             	mov    %eax,-0x10(%ebp)
552e2b:	8b 70 08             	mov    0x8(%eax),%esi
552e2e:	8b 38                	mov    (%eax),%edi
552e30:	89 75 f8             	mov    %esi,-0x8(%ebp)
552e33:	89 4d f4             	mov    %ecx,-0xc(%ebp)
552e36:	89 7d ec             	mov    %edi,-0x14(%ebp)
552e39:	89 55 dc             	mov    %edx,-0x24(%ebp)
552e3c:	0f 88 11 07 00 00    	js     0x553553
552e42:	6b c2 58             	imul   $0x58,%edx,%eax
552e45:	81 c3 f0 02 00 00    	add    $0x2f0,%ebx
552e4b:	03 d8                	add    %eax,%ebx
552e4d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
552e50:	80 7b 35 ad          	cmpb   $0xad,0x35(%ebx)
552e54:	8b 4b 48             	mov    0x48(%ebx),%ecx
552e57:	89 4d e8             	mov    %ecx,-0x18(%ebp)
552e5a:	0f 84 04 02 00 00    	je     0x553064
552e60:	8b 45 08             	mov    0x8(%ebp),%eax
552e63:	33 ff                	xor    %edi,%edi
552e65:	80 78 2f 02          	cmpb   $0x2,0x2f(%eax)
552e69:	0f 85 9f 00 00 00    	jne    0x552f0e
552e6f:	0f b6 40 2c          	movzbl 0x2c(%eax),%eax
552e73:	48                   	dec    %eax
552e74:	3b d0                	cmp    %eax,%edx
552e76:	0f 85 92 00 00 00    	jne    0x552f0e
552e7c:	f7 41 24 00 02 00 00 	testl  $0x200,0x24(%ecx)
552e83:	0f 84 85 00 00 00    	je     0x552f0e
552e89:	8b 41 20             	mov    0x20(%ecx),%eax
552e8c:	f6 40 38 80          	testb  $0x80,0x38(%eax)
552e90:	74 7c                	je     0x552f0e
552e92:	0f b7 49 1e          	movzwl 0x1e(%ecx),%ecx
552e96:	89 4d e0             	mov    %ecx,-0x20(%ebp)
552e99:	85 c9                	test   %ecx,%ecx
552e9b:	74 71                	je     0x552f0e
552e9d:	8b 40 08             	mov    0x8(%eax),%eax
552ea0:	66 83 3c 48 24       	cmpw   $0x24,(%eax,%ecx,2)
552ea5:	7c 67                	jl     0x552f0e
552ea7:	8b 55 f0             	mov    -0x10(%ebp),%edx
552eaa:	8b 42 2c             	mov    0x2c(%edx),%eax
552ead:	40                   	inc    %eax
552eae:	89 45 e4             	mov    %eax,-0x1c(%ebp)
552eb1:	85 c9                	test   %ecx,%ecx
552eb3:	74 20                	je     0x552ed5
552eb5:	03 c7                	add    %edi,%eax
552eb7:	50                   	push   %eax
552eb8:	57                   	push   %edi