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
552eb9:	ff 73 08             	push   0x8(%ebx)
552ebc:	6a 59                	push   $0x59
552ebe:	56                   	push   %esi
552ebf:	e8 7c ec fe ff       	call   0x541b40
552ec4:	8b 4d e0             	mov    -0x20(%ebp),%ecx
552ec7:	47                   	inc    %edi
552ec8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
552ecb:	83 c4 14             	add    $0x14,%esp
552ece:	3b f9                	cmp    %ecx,%edi
552ed0:	7c e3                	jl     0x552eb5
552ed2:	8b 55 f0             	mov    -0x10(%ebp),%edx
552ed5:	51                   	push   %ecx
552ed6:	ff 75 e4             	push   -0x1c(%ebp)
552ed9:	8d 41 01             	lea    0x1(%ecx),%eax
552edc:	01 42 2c             	add    %eax,0x2c(%edx)
552edf:	b8 19 00 00 00       	mov    $0x19,%eax
552ee4:	80 7b 35 04          	cmpb   $0x4,0x35(%ebx)
552ee8:	ba 16 00 00 00       	mov    $0x16,%edx
552eed:	6a 00                	push   $0x0
552eef:	ff 73 08             	push   0x8(%ebx)
552ef2:	0f 44 c2             	cmove  %edx,%eax
552ef5:	50                   	push   %eax
552ef6:	56                   	push   %esi
552ef7:	e8 14 ed fe ff       	call   0x541c10
552efc:	ff 73 3c             	push   0x3c(%ebx)
552eff:	8b f8                	mov    %eax,%edi
552f01:	6a 01                	push   $0x1
552f03:	6a 0b                	push   $0xb
552f05:	56                   	push   %esi
552f06:	e8 d5 eb fe ff       	call   0x541ae0
552f0b:	83 c4 28             	add    $0x28,%esp
552f0e:	8b 4e 0c             	mov    0xc(%esi),%ecx
552f11:	8b 53 18             	mov    0x18(%ebx),%edx
552f14:	f7 d2                	not    %edx
552f16:	8b 41 3c             	mov    0x3c(%ecx),%eax
552f19:	03 41 38             	add    0x38(%ecx),%eax
552f1c:	79 0d                	jns    0x552f2b
552f1e:	52                   	push   %edx
552f1f:	56                   	push   %esi
552f20:	51                   	push   %ecx
552f21:	e8 7a 08 fc ff       	call   0x5137a0
552f26:	83 c4 0c             	add    $0xc,%esp
552f29:	eb 09                	jmp    0x552f34
552f2b:	8b 49 40             	mov    0x40(%ecx),%ecx
552f2e:	8b 46 6c             	mov    0x6c(%esi),%eax
552f31:	89 04 91             	mov    %eax,(%ecx,%edx,4)
552f34:	8b 4b 38             	mov    0x38(%ebx),%ecx
552f37:	8b 43 3c             	mov    0x3c(%ebx),%eax
552f3a:	0f b6 53 36          	movzbl 0x36(%ebx),%edx
552f3e:	89 4d e0             	mov    %ecx,-0x20(%ebp)
552f41:	0f b6 4b 35          	movzbl 0x35(%ebx),%ecx
552f45:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
552f48:	8b 4e 6c             	mov    0x6c(%esi),%ecx
552f4b:	89 45 d8             	mov    %eax,-0x28(%ebp)
552f4e:	39 4e 70             	cmp    %ecx,0x70(%esi)
552f51:	7f 13                	jg     0x552f66
552f53:	52                   	push   %edx
552f54:	50                   	push   %eax
552f55:	ff 75 e0             	push   -0x20(%ebp)
552f58:	ff 75 e4             	push   -0x1c(%ebp)
552f5b:	56                   	push   %esi
552f5c:	e8 9f 35 fb ff       	call   0x506500
552f61:	83 c4 14             	add    $0x14,%esp
552f64:	eb 3b                	jmp    0x552fa1
552f66:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
552f69:	8d 41 01             	lea    0x1(%ecx),%eax
552f6c:	89 46 6c             	mov    %eax,0x6c(%esi)
552f6f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
552f72:	8b 46 68             	mov    0x68(%esi),%eax
552f75:	88 1c 88             	mov    %bl,(%eax,%ecx,4)
552f78:	33 db                	xor    %ebx,%ebx
552f7a:	66 89 5c 88 02       	mov    %bx,0x2(%eax,%ecx,4)
552f7f:	8b 5d e0             	mov    -0x20(%ebp),%ebx
552f82:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
552f86:	8b 5d d8             	mov    -0x28(%ebp),%ebx
552f89:	89 5c 88 08          	mov    %ebx,0x8(%eax,%ecx,4)
552f8d:	8b 5d fc             	mov    -0x4(%ebp),%ebx
552f90:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
552f94:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
552f9b:	00
552f9c:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
552fa1:	8b 46 6c             	mov    0x6c(%esi),%eax
552fa4:	85 c0                	test   %eax,%eax
552fa6:	7e 0f                	jle    0x552fb7
552fa8:	0f b6 53 37          	movzbl 0x37(%ebx),%edx
552fac:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
552faf:	8b 46 68             	mov    0x68(%esi),%eax
552fb2:	66 89 54 88 ee       	mov    %dx,-0x12(%eax,%ecx,4)
552fb7:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
552fbb:	74 7a                	je     0x553037
552fbd:	8b 4e 0c             	mov    0xc(%esi),%ecx
552fc0:	8b 53 28             	mov    0x28(%ebx),%edx
552fc3:	f7 d2                	not    %edx
552fc5:	8b 41 3c             	mov    0x3c(%ecx),%eax
552fc8:	03 41 38             	add    0x38(%ecx),%eax
552fcb:	79 0d                	jns    0x552fda
552fcd:	52                   	push   %edx
552fce:	56                   	push   %esi
552fcf:	51                   	push   %ecx
552fd0:	e8 cb 07 fc ff       	call   0x5137a0
552fd5:	83 c4 0c             	add    $0xc,%esp
552fd8:	eb 09                	jmp    0x552fe3
552fda:	8b 49 40             	mov    0x40(%ecx),%ecx
552fdd:	8b 46 6c             	mov    0x6c(%esi),%eax
552fe0:	89 04 91             	mov    %eax,(%ecx,%edx,4)
552fe3:	8b 53 3c             	mov    0x3c(%ebx),%edx
552fe6:	8b 4e 6c             	mov    0x6c(%esi),%ecx
552fe9:	4a                   	dec    %edx
552fea:	8b 43 24             	mov    0x24(%ebx),%eax
552fed:	89 45 d8             	mov    %eax,-0x28(%ebp)
552ff0:	39 4e 70             	cmp    %ecx,0x70(%esi)
552ff3:	7f 11                	jg     0x553006
552ff5:	6a 00                	push   $0x0
552ff7:	52                   	push   %edx
552ff8:	50                   	push   %eax
552ff9:	6a 3b                	push   $0x3b
552ffb:	56                   	push   %esi
552ffc:	e8 ff 34 fb ff       	call   0x506500
553001:	83 c4 14             	add    $0x14,%esp
553004:	eb 31                	jmp    0x553037
553006:	8b 5d d8             	mov    -0x28(%ebp),%ebx
553009:	8d 41 01             	lea    0x1(%ecx),%eax
55300c:	89 46 6c             	mov    %eax,0x6c(%esi)
55300f:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
553012:	8b 46 68             	mov    0x68(%esi),%eax
553015:	89 5c 88 04          	mov    %ebx,0x4(%eax,%ecx,4)
553019:	8b 5d fc             	mov    -0x4(%ebp),%ebx
55301c:	c7 04 88 3b 00 00 00 	movl   $0x3b,(%eax,%ecx,4)
553023:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
553027:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
55302e:	00
55302f:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
553036:	00
553037:	85 ff                	test   %edi,%edi
553039:	74 4f                	je     0x55308a
55303b:	8b 56 6c             	mov    0x6c(%esi),%edx
55303e:	79 03                	jns    0x553043
553040:	8d 7a ff             	lea    -0x1(%edx),%edi
553043:	8b 06                	mov    (%esi),%eax
553045:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
553049:	74 0a                	je     0x553055
55304b:	b8 ec 02 73 00       	mov    $0x7302ec,%eax
553050:	89 50 08             	mov    %edx,0x8(%eax)
553053:	eb 35                	jmp    0x55308a
553055:	8b 46 68             	mov    0x68(%esi),%eax
553058:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
55305b:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
55305f:	8d 04 88             	lea    (%eax,%ecx,4),%eax
553062:	eb 26                	jmp    0x55308a
553064:	8b 4e 0c             	mov    0xc(%esi),%ecx
553067:	8b 53 18             	mov    0x18(%ebx),%edx
55306a:	f7 d2                	not    %edx
55306c:	8b 41 3c             	mov    0x3c(%ecx),%eax
55306f:	03 41 38             	add    0x38(%ecx),%eax
553072:	79 0d                	jns    0x553081
553074:	52                   	push   %edx
553075:	56                   	push   %esi
553076:	51                   	push   %ecx
553077:	e8 24 07 fc ff       	call   0x5137a0
55307c:	83 c4 0c             	add    $0xc,%esp
55307f:	eb 09                	jmp    0x55308a
553081:	8b 49 40             	mov    0x40(%ecx),%ecx
553084:	8b 46 6c             	mov    0x6c(%esi),%eax
553087:	89 04 91             	mov    %eax,(%ecx,%edx,4)
55308a:	8b 45 e8             	mov    -0x18(%ebp),%eax
55308d:	f7 40 24 00 08 00 00 	testl  $0x800,0x24(%eax)
553094:	0f 84 ae 01 00 00    	je     0x553248
55309a:	83 7b 40 00          	cmpl   $0x0,0x40(%ebx)
55309e:	0f 8e a4 01 00 00    	jle    0x553248
5530a4:	8b 4e 0c             	mov    0xc(%esi),%ecx
5530a7:	8b 53 10             	mov    0x10(%ebx),%edx
5530aa:	f7 d2                	not    %edx
5530ac:	8b 41 3c             	mov    0x3c(%ecx),%eax
5530af:	03 41 38             	add    0x38(%ecx),%eax
5530b2:	79 0d                	jns    0x5530c1