object vs companion object kotlin

class MyClass {
    companion object {
        const val CONSTANT_VALUE = 42

        fun staticFunction() {
            // Code for static function
        }
    }

    object InstanceObject {
        fun instanceFunction() {
            // Code for instance function
        }
    }
}

fun main() {
    val constantValue = MyClass.CONSTANT_VALUE
    MyClass.staticFunction()

    val instanceObject = MyClass.InstanceObject
    instanceObject.instanceFunction()
}