How ReplicatedUsing function with variable as input?

I can see in the shooter game this

    UPROPERTY(Transient, ReplicatedUsing=OnRep_CurrentWeapon)
    class AShooterWeapon* CurrentWeapon;
    
    /** current weapon rep handler */
    UFUNCTION()
    void OnRep_CurrentWeapon(class AShooterWeapon* LastWeapon);

Where is LastWeapon is filled from?